本地测试良好,样例&第一个点良好,但测评时全WA
#include <bits/stdc++.h>
using namespace std;
int B;
class bint
{
int num[2002];
int len = 0;
int ctoi(const char &c)
{
if (isdigit(c))
return c - '0';
return c - 'A' + 10;
}
char itoc(const int &x)
{
if (x < 10)
return x + '0';
return 'A' + x - 10;
}
public:
bint() {}
void read()
{
char c;
for (len = 0;;)
{
cin.get(c);
if (isspace(c))
break;
num[++len] = ctoi(c);
}
reverse(num + 1, num + len + 1);
}
void print()
{
for (int i = len; i > 0; --i)
cout << itoc(num[i]);
}
bint operator+=(const bint &b)
{
int up = 0;
len = max(len, b.len);
for (int i = 1; i <= len; ++i)
{
num[i] += b.num[i] + up;
if (num[i] >= B)
num[i] -= B, up = 1;
else
up = 0;
}
if (up)
num[++len] = 1;
return *this;
}
};
int main()
{
cin >> B;
cin.get();
bint a, b;
a.read(), b.read();
a += b;
a.print();
cout << endl;
return 0;
}