Submission

Status:

PPPPPPP-P

Subtask/Task Score:

96/100

Score: 96

User: erng

Problemset: บวกเลขฐาน

Language: cpp

Time: 0.003 second

Submitted On: 2025-09-26 15:18:02

#include <bits/stdc++.h>
using namespace std;

int n, va, vb,k=1, num;
string a,b;
int ax[1000], bx[1000];
stack<char> e;

int 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();
    }
}