Submission

Status:

---------

Subtask/Task Score:

0/100

Score: 0

User: tha_smith

Problemset: บวกเลขฐาน

Language: cpp

Time: 0.003 second

Submitted On: 2025-10-07 22:25:01

#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;
	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];
            }
        }
	}
}
}