Submission

Status:

PPPPPPP-P

Subtask/Task Score:

96/100

Score: 96

User: Neozaawwman1

Problemset: บวกเลขฐาน

Language: cpp

Time: 0.003 second

Submitted On: 2025-10-02 15:12:49

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

int change(string n,int base){
	int sum = 0;
	int power = 0;
	for(int i=n.length()-1; i>=0; i--){
		if(n[i]=='A'){
			sum+=10*pow(base,power);
			power++;
		}else if(n[i]=='B'){
			sum+=11*pow(base,power);
			power++;
		}else if(n[i]=='C'){
			sum+=12*pow(base,power);
			power++;
		}else if(n[i]=='D'){
			sum+=13*pow(base,power);
			power++;
		}else if(n[i]=='E'){
			sum+=14*pow(base,power);
			power++;
		}else if(n[i]=='F'){
			sum+=15*pow(base,power);
			power++;
		}else{
			int digit = n[i]-'0';
			sum+=digit*pow(base,power);
			power++;
		}
	}
	return sum;	
}

void changeback(int sum, int base){
	vector<char> output;
	while(sum>0){
		int re = sum%base;
		char hex;
		if(re<10){
			hex=re+'0';
		}else{
			hex = 'A'+(re-10);
		}
		output.push_back(hex);
		sum=sum/base;
	}
	for(int i=output.size()-1; i>=0; i--){
		cout<<output[i];
	}
}
int main(){
	string n1, n2;
	int base;
	cin>>base>>n1>>n2;
	if(base>16 ||base<2){
		return 0;
	}
	int num1 = change(n1,base);
	int num2 = change(n2,base);
	int sum = num1+num2;
	changeback(sum,base);
	
	
	return 0;
}