Submission
Status:
PPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: tha_smith
Problemset: บวกเลขฐาน
Language: cpp
Time: 0.002 second
Submitted On: 2025-10-07 22:38:55
#include <iostream>
#include <cstring>
using namespace std;
int main() {
int x,sum1=0,sum2=0,d1=-1,d2=-1;
char n1[9999];
char n2[9999];
memset(n1,'Z',sizeof(n1));
memset(n2,'Z',sizeof(n2));
int num1[9999];
int num2[9999];
memset(num1,-1,sizeof(num1));
memset(num2,-1,sizeof(num2));
cin >> x >> n1 >> n2;
if(x>=2 && x<=16) {
for(int i=0; i<9999; i++) {
if(n1[i]=='Z') {
break;
}
else if(n1[i]=='A') {
num1[i] = 10;
}
else if(n1[i]=='B') {
num1[i] = 11;
}
else if(n1[i]=='C') {
num1[i] = 12;
}
else if(n1[i]=='D') {
num1[i] = 13;
}
else if(n1[i]=='E') {
num1[i] = 14;
}
else if(n1[i]=='F') {
num1[i] = 15;
}
else {
num1[i] = n1[i]-'0';
}
d1++;
//cout << d1 << endl;
}
for(int i=0; i<9999; i++) {
if(n2[i]=='Z') {
break;
}
else if(n2[i]=='A') {
num2[i] = 10;
}
else if(n2[i]=='B') {
num2[i] = 11;
}
else if(n2[i]=='C') {
num2[i] = 12;
}
else if(n2[i]=='D') {
num2[i] = 13;
}
else if(n2[i]=='E') {
num2[i] = 14;
}
else if(n2[i]=='F') {
num2[i] = 15;
}
else {
num2[i] = n2[i]-'0';
}
d2++;
}
//cout << x << " " << num1[0] << " " << num1[1] << " " << num2[0] << " " << num2[1] << endl;
// else {
//cout << d1 << " " << d2;
int p1=d1-1,p2=d2-1,b1=1,b2=1;
for(int i=0;i<d1;i++) {
for(int j=p1; j>0; j--) {
b1*=x;
//cout << b1 << endl;
}
sum1 += (num1[i]*b1);
b1 = 1;
p1--;
//cout << sum1 << " : " << b1 << " : " << p1 << endl;
}
for(int i=0;i<d2;i++) {
for(int j=p2; j>0; j--) {
b2*=x;
//cout << b2 << endl;
}
//cout << num2[i] << endl;
sum2 += (num2[i]*b2);
b2 = 1;
p2--;
//cout << sum2 << " : " << b2 << " : " << p2 << endl;
}
// cout << sum1 << endl;
// cout << sum2 << endl;
int sum = sum1+sum2;
if(sum==0) {
cout << 0;
return 0;
}
int r[20];
memset(r,-1,sizeof(r));
int i=15;
while(sum>0) {
//cout << X << " " << N << " " << i << endl;
int m = sum%x;
r[i] = m;
sum /= x;
i--;
//cout << m << " " << N << endl;
}
for (int i=0; i<16; i++) {
//cout << i << " : " << r[i] << endl;;
if(r[i]!=-1) {
if(r[i]==10) {
cout << 'A';
}
else if(r[i]==11) {
cout << 'B';
}
else if(r[i]==12) {
cout << 'C';
}
else if(r[i]==13) {
cout << 'D';
}
else if(r[i]==14) {
cout << 'E';
}
else if(r[i]==15) {
cout << 'F';
}
else {
cout << r[i];
}
}
}
}
}