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