Submission
Status:
PPPPPPP-P
Subtask/Task Score:
96/100
Score: 96
User: erng
Problemset: บวกเลขฐาน
Language: cpp
Time: 0.002 second
Submitted On: 2025-09-26 15:18:35
#include <bits/stdc++.h>
using namespace std;
#define int long long
int n, va, vb,k=1, num;
string a,b;
int ax[1000], bx[1000];
stack<char> e;
int32_t main()
{
cin>>n>>a>>b;
for (int i=0; i<a.size(); i++)
{
if ('A'<=a[i] && a[i]<'Z')
{
ax[i]=(int)(a[i]-55);
}
else
{
ax[i]=a[i]-'0';
}
}
for (int i=0; i<b.size(); i++)
{
if ('A'<=b[i] && b[i]<'Z')
{
bx[i]=b[i]-55;
}
else
{
bx[i]=b[i]-'0';
}
}
for (int i=a.size()-1; i>=0; i--)
{
va=va+ax[i]*k;
k=k*n;
}
k=1;
for (int i=b.size()-1; i>=0; i--)
{
vb=vb+bx[i]*k;
k=k*n;
}
num=va+vb;
while (num>0)
{
k=num%n;
if (k>9) e.push('A'+k-10);
else e.push(k+'0');
num=num/n;
}
while(e.size()>0)
{
cout<<e.top();
e.pop();
}
}