Submission
Status:
P--PP-PP-
Subtask/Task Score:
60/100
Score: 60
User: fillhavertz
Problemset: บวกเลขฐาน
Language: cpp
Time: 0.002 second
Submitted On: 2025-10-05 13:49:11
#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,int n){
for(int i = 0;i<n;i++){
if (c==a[i]) return i;
}
}
char pluss(char st,char nd,int n){
int fr = find(st,n);
int sc = find(nd,n);
int re = (p)?(fr+sc+1)%n:(fr+sc)%n;
if((fr+sc)>=n) p = true;
else p = false;
//cout<<fr<<'+'<<sc<<'='<<re<<endl;
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()<len) out+= pluss(text2[len-i-1],'0',n);
else if(text2.length()<len) 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];
}