Submission
Status:
------PxP
Subtask/Task Score:
24/100
Score: 24
User: Newton4566
Problemset: บวกเลขฐาน
Language: cpp
Time: 0.004 second
Submitted On: 2026-09-25 11:47:49
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string toBase(long long n, int b) {
if (n == 0) return 0;
string digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
string s;
bool neg = n < 0; //check if n < 0?
if (neg) n = -n; //if n < 0, make it become positive
while (n > 0) {
s += digits[n % b];
n /= b;
}
if (neg) s += '-';
reverse(s.begin(), s.end());
return s;
}
long long fromBase(const string& s, int b) {
long long result = 0;
size_t i = 0;
bool neg = false;
if (!s.empty() && s[0] == '-') {
neg = true;
i = 1;
}
for (; i < s.size(); i++) {
char c = s[i];
int d;
if (c >= '0' && c <= '9') d = c - '0';
else d = c - 'A' + 10;
result = result * b + d;
}
return neg ? -result : result;
}
int main() {
int base;
string n1, n2;
cin >> base >> n1 >> n2;
int sum = fromBase(n1, base) + fromBase(n2, base);
cout << toBase(sum, 5);
return 0;
}