Submission

Status:

[PPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: usahana

Problemset: ตรวจบัตรเครดิต

Language: cpp

Time: 0.002 second

Submitted On: 2026-10-10 10:20:15

#include <bits/stdc++.h>
using namespace std;

vector<int> stringToVector(string numStr) {
    vector<int> digits;
    for (char c : numStr) {
        digits.push_back(c - '0');
    }
    return digits;
}

int main() {
    string numStr;
    cin >> numStr;

    vector<int> creditCard = stringToVector(numStr);

    int last = creditCard.back();
    creditCard.pop_back();

    for (size_t i = 0; i < creditCard.size(); i++) {
        if (i % 2 == 0) {
            creditCard[i] *= 2;
        }
    }

    vector<int> splitCard;
    for (int num : creditCard) {
        if (num >= 10) {
            splitCard.push_back(num / 10);
            splitCard.push_back(num % 10);
        } else {
            splitCard.push_back(num);
        }
    }

    int sum = 0;
    for (int num : splitCard) {
        sum += num;
    }

    int checkDigit = (10 - (sum % 10)) % 10;

    if (checkDigit == last) {
        cout << "yes";
    } else {
        cout << "no";
    }

    return 0;
}