Submission

Status:

PPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: yourmom

Problemset: บวกเลขฐาน

Language: cpp

Time: 0.002 second

Submitted On: 2026-10-03 09:39:42

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

int charToVal(char c) {
    if (isdigit(c)) return c - '0';
    return toupper(c) - 'A' + 10;
}

char valToChar(int v) {
    if (v < 10) return '0' + v;
    return 'A' + (v - 10);
}

long long toDecimal(const string& num, int base) {
    long long result = 0;
    for (char c : num) {
        result = result * base + charToVal(c);
    }
    return result;
}

string toBase(long long num, int base) {
    if (num == 0) return "0";
    string result;
    while (num > 0) {
        result.push_back(valToChar(num % base));
        num /= base;
    }
    reverse(result.begin(), result.end());
    return result;
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int base;
    string num1, num2;
    cin >> base;
    cin >> num1;
    cin >> num2;
    for (char& c : num1) c = toupper(c);
    for (char& c : num2) c = toupper(c);

    long long sum = toDecimal(num1, base) + toDecimal(num2, base);
    string result = toBase(sum, base);

    cout << result << "\n";

    return 0;
}