Submission

Status:

[PPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: bbcctxp

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

Language: c

Time: 0.002 second

Submitted On: 2025-10-09 22:01:12

//c1_bkk67_5
#include <stdio.h>
#include <string.h>

int num[20];

void str_rev(char str[]) {
    int start=0;
    int end=strlen(str)-1;
    char swap;

    while(start<end) {
        swap=str[start];
        str[start]=str[end];
        str[end]=swap;

        start++;
        end--;
    }
}

int main(){
    char id[20];
    scanf("%s",id);
    int check=id[15]-'0';

    str_rev(id);

    for(int i=0;i<16;i++)
        if(i!=0)
            num[i]=id[i]-'0';

    for(int i=0;i<16;i++){
        if(i%2)
            num[i]*=2;
    }


    int sum=0;
    for(int i=0;i<16;i++){
        if(num[i]>=10)
            sum=sum+(num[i]/10)+(num[i]%10);
        else
            sum+=num[i];
    }

    //(10 - (R mod 10)) mod 10
    int ans=(10-(sum%10))%10;

    if(ans==check) printf("yes");
    else printf("no");


    return 0;
}
//5490123456789128
//5647373649364392