高精加法,B为进制数
#include <iostream>
#include <cstring>
//using i64 = long long;
const int MAXN = 2002;
bool issmall(char c){
return c >= 'a' && c <= 'z';
}
int B;
struct BigNum {
int a[MAXN] = {0}, len = 0;
void flat(){
for (int i = 0; i < len; ++ i)
a[i + 1] += a[i] / B, a[i] %= B,
(i == len - 1 && a[i + 1]) && (++ len);
}
BigNum(int t = 0){
while (t)
a[len++] = t % B,
t /= B;
flat();
}
BigNum(char s[] = "0"{
len = strlen(s);
for (int i = strlen(s) - 1; i >= 0; -- i)
a[strlen(s) - 1 - i] =
isdigit(s[i]) ? (s[i] - '0')
: issmall(s[i]) ? (s[i] - 'a' + 10)
: (s[i] - 'A' + 10);
}
void output(){
for (int i = len - 1; i >= 0; -- i)
putchar(a[i] + '0');
}
BigNum operator + (const BigNum& A) const {
BigNum _B = 0; _B.len = std::max(len, A.len);
for (int i = 0; i < _B.len; ++ i){
_B.a[i] = a[i] + A.a[i];
}
_B.flat();
return _B;
}
} n1 = 0, n2 = 0;
char s1[2001], s2[2001];
int main(){
std::cin >> B;
std::cin >> s1 >> s2;
n1 = s1, n2 = s2;
BigNum n3 = n1 + n2;
n3.output();
return 0;
}