Submission

Status:

[PPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: posnfor2

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

Language: cpp

Time: 0.002 second

Submitted On: 2025-10-10 15:46:16

#include <bits/stdc++.h>

using namespace std;

int main()
{
    string card;
    cin >> card;
    if(card.size() != 16){
        return 0;
    }
    int chectD = card.back() - '0';
    card.pop_back();

    reverse(card.begin(), card.end());
    vector <int> digits;
    for(int i = 0; i < card.size(); i++){
        int num = card[i] - '0';
        if(i % 2 == 0) num *= 2;
        if(num >= 10){
            digits.push_back(num / 10);
            digits.push_back(num % 10);
        }
        else{
            digits.push_back(num);
        }
    }
    int sum = accumulate(digits.begin(), digits.end(), 0);
    int calcheck  = (10 - (sum % 10)) % 10;
    if(calcheck == chectD){
        cout << "yes";
    }
    else{
        cout << "no";
    }
}