Submission

Status:

PPPPPPP-P

Subtask/Task Score:

96/100

Score: 96

User: sakuragichan

Problemset: บวกเลขฐาน

Language: cpp

Time: 0.005 second

Submitted On: 2026-10-13 20:24:32

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

int main() {
    int n,s1 = 0,s2 = 0;
    stack<char> arr;
    cin >> n;
    string s,c;
    cin >> s >> c;
    if (n <= 10){
        for (int i = s.length()-1;i>= 0;--i){
            s1 +=   (s[i]-'0') *pow(n,s.length()-1-i);
        }
        for (int i = c.length()-1;i>= 0;--i){
            s2 +=   (c[i]-'0') *pow(n,c.length()-1-i);
        }
    }
    else {
        for (int i = s.length()-1;i>= 0;--i){
            if (s[i] >= 'A' && s[i] <= 'F') {
                s1 += (s[i] - 'A' + 10) * pow(n, s.length() - 1 - i);
            } else {
                s1 += (s[i] - '0') * pow(n, s.length() - 1 - i);
            }
        }
        for (int i = c.length()-1;i>= 0;--i){
            if (c[i] >= 'A' && c[i] <= 'F') {
                s2 += (c[i] - 'A' + 10) * pow(n, c.length() - 1 - i);
            } else {
                s2 += (c[i] - '0') * pow(n, c.length() - 1 - i);
            }
        }
    }
    
    int sum = s1+s2;
    while(sum > 0){
        if (sum % n >= 10) {
            arr.push((sum%n) + 'A' - 10);
        } else {
            arr.push(sum % n + '0');
        }
        sum /= n;
    }
    while(!arr.empty()){
        cout << arr.top();
        arr.pop();
    }
}