Submission

Status:

P-----P-P

Subtask/Task Score:

36/100

Score: 36

User: limsan

Problemset: บวกเลขฐาน

Language: cpp

Time: 0.002 second

Submitted On: 2026-06-10 21:31:02

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    ll x = 0, sum = 0, sum1 = 1, index = 0;
    string y, z;
    cin >> x;
    cin >> y >> z;
    for (int i = 0; i < y.size(); i++)
    {
        if (y[i] == '0' || y[i] == '1' || y[i] == '2' || y[i] == '3' || y[i] == '4' || y[i] == '5' || y[i] == '6' || y[i] == '7' || y[i] == '8' || y[i] == '9')
            sum += (pow(x, (y.size() - i - 1)) * (y[i] - '0'));
        else
            sum += (pow(x, (y.size() - i - 1)) * ((int(y[i]) - 55)));
    }
    for (int i = 0; i < z.size(); i++)
    {
        if (z[i] == '0' || z[i] == '1' || z[i] == '2' || z[i] == '3' || z[i] == '4' || z[i] == '5' || z[i] == '6' || z[i] == '7' || z[i] == '8' || z[i] == '9')
            sum += (pow(x, (z.size() - i - 1)) * (z[i] - '0'));
        else
            sum += (pow(x, (z.size() - i - 1)) * ((int(z[i]) - 55)));
    }
    while (1)
    {
        if (sum1 > sum)
        {
            index--;
            break;
        }
        sum1 *= x;
        index++;
    }
    // cout << sum << " " << index << " ";
    for (int i = index; i >= 0; i--)
    {
        if (sum / pow(x, i) <= 9 && sum / pow(x, i) >= 0)
        {
            cout << int(sum / pow(x, i));
            sum -= (int(sum / pow(x, i)) * pow(x, i));
        }
        else
        {
            cout << char((sum / pow(x, i)) + 55);
            sum -= ((sum / pow(x, i)) * ((sum / pow(x, i)) + 55));
        }
    }
    return 0;
}