Submission
Status:
PPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: Quinruj
Problemset: บวกเลขฐาน
Language: cpp
Time: 0.003 second
Submitted On: 2025-10-02 15:48:46
#include <bits/stdc++.h>
using namespace std;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int base;cin>>base;
string a,b,c;cin>>a>>b;
unordered_map<char,int> mp;
for (int i = 0;i<=6;i++) mp[char(65+i)] = 10+i;
reverse(a.begin(),a.end());
reverse(b.begin(),b.end());
while (a.size() < b.size()) a += '0';
while (a.size() > b.size()) b += '0';
int k = 0;
for (int i = 0;i<a.size();i++){
int a_value,b_value;
if (a[i] >= 'A' && a[i] <= 'F') a_value = mp[a[i]];
else a_value = a[i]-'0';
if (b[i] >= 'A' && b[i] <= 'F') b_value = mp[b[i]];
else b_value = b[i]-'0';
int sum = a_value+b_value+k;
if (sum%base > 9) c += char(65+sum%base-10);
else c += (sum%base+'0');
k = sum/base;
}
if (k > 0) c += k+'0';
reverse(c.begin(),c.end());
cout << c;
}