Submission

Status:

P--PP-PP-

Subtask/Task Score:

60/100

Score: 60

User: qweqwe

Problemset: บวกเลขฐาน

Language: cpp

Time: 0.002 second

Submitted On: 2025-10-08 15:47:48

#include <bits/stdc++.h>
#define speed cin.tie(0)->sync_with_stdio(0)
#define ll long long
#define pii pair<int,int>
using namespace std;

const vector<char> v={'A','B','C','D','E','F','G'};

int main(){
	speed;
	int x,idx=0;string n,m;cin >> x >> n >> m;
	int t=min(n.size(),m.size());
	if (n.size()>t){
		for (int i=0;i<n.size()-t;i++) {m+='0';}
		reverse(m.begin(),m.end());
	}else if (m.size()>t){
		for (int i=0;i<m.size()-t;i++) {n+='0';}
		reverse(n.begin(),n.end());
	}//cout << n << " " << m << "\n";
	string sum="";int temp=m.size();
	for (int i=temp-1;i>=0;i--){
		int a=n[i]-'0',b=m[i]-'0';
		if (a>9) a=10+(n[i]-'A');
		if (b>9) b=10+(m[i]-'A');
		int op=a+b+idx;if (op>(x-1)){
			idx=op/x;op%=x;
		}else idx=0;
		if (op>9){
			op-=10;sum+=v[op];
		}else sum+=op+'0';
		//cout << op;
		//cout << a << " " << b << "\n";
	}if (idx) sum+=idx+'0';
	reverse(sum.begin(),sum.end());
	cout << sum;
	return 0;
}