Submission

Status:

-------P-

Subtask/Task Score:

12/100

Score: 12

User: Sense.exe

Problemset: บวกเลขฐาน

Language: cpp

Time: 0.004 second

Submitted On: 2026-10-01 15:35:50

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

int main() {
    int b;
    string s1,s2;
    cin >> b >> s1 >> s2;
    vector<int> v;
    //base -> 10
    long long b10_1=0,b10_2=0;
    long long pw=1;
    for(int i=s1.length()-1; i>=0; i--) {
        if(s1[i]>='A'&&s1[i]<='Z') {
            s1[i] = s1[i]-55;
            b10_1 += (s1[i])*pw;
        }
        else {
            b10_1 += (s1[i]-'0')*pw; //ตอนแรก b10_1 = s1[i]*pow(b,i); เลยผิด
        }
        pw*=b;
    }
    long long pw2=1;
    for(int i=s2.length()-1; i>=0; i--) {
        if(s2[i]>='A'&&s2[i]<='Z') {
            s2[i] = s2[i]-55;
            b10_2 += (s2[i])*pw2;
        }
        else {
            b10_2 += (s2[i]-'0')*pw2;
        }
        pw2*=b;
    }
    //plus
    long long sum10 = b10_1 + b10_2;
    //10 -> base
    while(sum10>0) {
        v.push_back(sum10%b);
        sum10/=b;
    }
    reverse(v.begin(),v.end());
    //print and change a-z -> 10
    if (sum10 == 0) {
    cout << 0;
    return 0;
    }
    for(auto x:v) {
        if(x>=10) {
            cout << char(x+55);
        }
        else {
            cout << x;
        }
    }
}