Submission
Status:
PPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: mameeewin
Problemset: บวกเลขฐาน
Language: cpp
Time: 0.002 second
Submitted On: 2026-10-08 19:21:37
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main(){
int x; cin >> x;
string s1, s2; cin >> s1 >> s2;
vector<int> a, b;
if (s1.length()>s2.length())
for (int i=0; i<s1.length()-s2.length(); i++) b.push_back(0);
else if (s2.length()>s1.length())
for (int i=0; i<s2.length()-s1.length(); i++) a.push_back(0);
for (char i: s1){
if ('0'<=i&&i<='9') a.push_back(i-'0');
else a.push_back(i-'A'+10);
}
for (char i: s2){
if ('0'<=i&&i<='9') b.push_back(i-'0');
else b.push_back(i-'A'+10);
}
int carry=0;
for (int i=a.size()-1; i>-1; i--){
a[i]+=b[i];
if (carry){
a[i]+=carry;
carry=0;
}
if (a[i]>=x){
carry=a[i]/x;
a[i]%=x;
}
}
if (carry){
if (carry>9) cout << char('A'+carry-10);
else cout << carry;
}
for (int i=0; i<a.size(); i++){
if (a[i]>9) cout << char('A'+a[i]-10);
else cout << a[i];
}
}