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];
  }
}