Submission
Status:
PPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: fillhavertz
Problemset: บวกเลขฐาน
Language: cpp
Time: 0.002 second
Submitted On: 2025-10-05 14:42:19
#include <iostream>
#include <vector>
#include <string>
using namespace std;
char a[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
bool p = 0;
int find(char c){
for(int i = 0;i<16;i++){
if (c==a[i]) return i;
}return 0;
}
char pluss(char st,char nd,int n){
int fr = find(st);
int sc = find(nd);
int re = (p)?(fr+sc+1):(fr+sc);
if(re>=n) p = true;
else p = false;
re %= n;
return a[re];
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int base;
string text1,text2;
int len;
int n;
cin>>n;
cin>>text1>>text2;
string out;
(text1.length()>text2.length())?len = text1.length():len = text2.length();
for(int i = 0 ;i<len;i++){
if(text1.length()-1-i<0) out+= pluss(text2[len-i-1],'0',n);
else if(text2.length()-1-i<0) out+= pluss(text1[len-i-1],'0',n);
else out += pluss(text1[text1.length()-1-i],text2[text2.length()-1-i],n);
}
if(p)len++,out+='1';
for(int i = 0 ;i<len;i++) cout<<out[len-i-1];
}