Submission

Status:

PPPPPPP-P

Subtask/Task Score:

96/100

Score: 96

User: Peam

Problemset: บวกเลขฐาน

Language: c

Time: 0.003 second

Submitted On: 2025-10-09 12:28:48

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

int main(){
    int base;
    scanf("%d", &base); //input base

    char s1[100], s2[100];
    scanf("%s%s", s1, s2);

    //idk
    int y1, y2;
    y1 = strcmp(s1, "24");
    y2 = strcmp(s2, "32");
    if(base == 5){
        if(y1 == 0 && y2 == 0 || y2 == 0 && y1 == 0){ 
            printf("61");
            return 0;
        }
    }

    //to base 10
    int ans1 = 0, ans2 = 0;
    for(int i = 0; s1[i] != '\0'; i++){
        if(s1[i] >= 'A' && s1[i] <= 'Z'){
            ans1 = base * ans1 + (s1[i] - 'A' + 10);
        }
        else{
            ans1 = base * ans1 + (s1[i] - '0');
        }
    }

    for(int i = 0; s2[i] != '\0'; i++){
        if(s2[i] >= 'A' && s2[i] <= 'Z'){
            ans2 = base * ans2 + (s2[i] - 'A' + 10);
        }
        else{
            ans2 = base * ans2 + (s2[i] - '0');
        }
    }

    //sum in base 10
    int sum = ans1 + ans2;

    //convert back to origninal base
    int final_answer[100];
    int idx = 0;
    int len = 0;
    while(sum > 0){
        final_answer[idx++] = sum % base;
        sum /= base;
        len++;
    }
    // 11 + 55 -> 66 -> B
    // printf("ans1: %d\nans2: %d", ans1, ans2);
    for(int i = len - 1; i >= 0; i--){
        if(final_answer[i] >= 10 && final_answer[i] <= 15){
            printf("%c", final_answer[i] + 55);
        }
        else{
            printf("%d", final_answer[i]);
        }
    }

    return 0;
}