Submission

Status:

[PPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: KanemiyaKana

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

Language: cpp

Time: 0.002 second

Submitted On: 2026-09-25 12:08:56

#include <iostream>
#include <string>
using namespace std;

string identification(long long identificationnumber)
{
    int total = 0;
    string idenstringconditionaldoubled = "";
    string idenstringreverse = "";
    string idenstringcutlast = "";
    string idenstring = to_string(identificationnumber);
    for (int i = 0; i < idenstring.length() - 1; i++)
    {
        idenstringcutlast += idenstring[i];
    }
    for (int i = idenstringcutlast.length() - 1; i >= 0; i--)
    {
        idenstringreverse += idenstringcutlast[i];
    }
    for (int i = 0; i < idenstringreverse.length(); i++)
    {
        if (i % 2 == 0)
        {
            int tempvalue = idenstringreverse[i] - '0';
            int assignedtemp = tempvalue * 2;
            string tempadder = to_string(assignedtemp); // NEEDS TO CHANGE TO INT FIRST BEFORE ASSIGNING THEN CAN CHANGE BACK TO STRING BEFORE STORING (FIXED!)
            idenstringconditionaldoubled += tempadder;
        }
        else
        {
            idenstringconditionaldoubled += idenstringreverse[i];
        }
    }
    for (int i = 0; i < idenstringconditionaldoubled.length(); i++)
    {
        int digitvalue = idenstringconditionaldoubled[i] - '0';
        total = total + digitvalue;
    }
    int firstmod = total % 10;
    int secondmod = (10 - firstmod) % 10;
    if (secondmod == (idenstring[15] - '0'))
    {
        return "yes";
    }
    else
    {
        return "no";
    }
}
int main()
{
    long long input;
    cin >> input;
    if (input > 9999999999999999 || input < 1000000000000000)
    {
        return 0;
    }
    else
    {
        string output = identification(input);
        cout << output;
    }
}