Submission

Status:

PPPPPPP-P

Subtask/Task Score:

96/100

Score: 96

User: Prap

Problemset: บวกเลขฐาน

Language: cpp

Time: 0.002 second

Submitted On: 2026-04-03 17:02:05

#include <iostream>
#include <cmath>
#include <vector>
#include <string>
using namespace std;
int main() {
	int N;
	string a,b;
	cin>>N>>a>>b;
	int alen = a.length();
	int blen = b.length();
	int aval = 0;
	int bval = 0;
	int maxlen = blen;
	if (alen >= blen) {
		maxlen = alen;
	}
	for (int i = 0; i<alen; i++) {
		if (a[i] >= 65) {
			aval = aval + (a[i]-55)*pow(N,alen-i-1);
		}
		else {
			aval = aval + (a[i]-48)*pow(N,alen-i-1);
		}
	}
	for (int i = 0; i<blen; i++) {
		if (b[i] >= 65) {
			bval = bval + (b[i]-55)*pow(N,blen-i-1);
		}
		else {
			bval = bval + (b[i]-48)*pow(N,blen-i-1);
		}
	}
	int mysum = aval + bval;
	int ans[maxlen+1];
	int nig = 0;
	while (mysum != 0) {
		if (mysum%N >= 10) {
			ans[nig] = mysum%N;
		}
		else {
			ans[nig] = mysum%N;
		}
		nig++;
		mysum = mysum / N;
	}
	for (int i = nig-1; i>=0; i--) {
		if (ans[i] <= 9) {
			cout<<ans[i];
		}
		else {
			cout<<char(ans[i] + 55);
		}
	}
}