Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: tha_smith

Problemset: แปลงเลขฐาน

Language: cpp

Time: 0.002 second

Submitted On: 2025-10-12 15:58:58

#include <iostream>
#include <cstring>
using namespace std;

int main() {
	string s;
	cin >> s;
	int si = s.size();
	int n[si];
	
	for(int i=0; i<si; i++) {
		if(s[i]=='A') {
			n[i] = 10;
		}
		else if(s[i]=='B') {
			n[i] = 11;
		}
		else if(s[i]=='C') {
			n[i] = 12;
		}
		else if(s[i]=='D') {
			n[i] = 13;
		}
		else if(s[i]=='E') {
			n[i] = 14;
		}
		else if(s[i]=='F') {
			n[i] = 15;
		}
		else {
			n[i] = s[i]-'0';
		}
	}
	
	int sum=0,base=1,p=0;
	for(int i=si-1; i>=0; i--) {
		//cout << n[i] << endl;
		for(int j=0; j<p; j++) {
			base*=16;
		}
		//cout << base << " " << base*n[i];
		sum += (base*n[i]);
		base = 1;
		p++;
	}
	//cout << sum;
	
	int sum1=sum,sum2=sum;
	int n1[16],n2[16];
	memset(n1,-1,sizeof(n1));
	memset(n2,-1,sizeof(n2));
	
	int j1=15,j2=15;
	while(sum1>0) {
		n1[j1] = sum1%2;
		sum1/=2;
		j1--;
	}
	while(sum2>0) {
		n2[j2] = sum2%8;
		//cout << n2[j2] << endl;
		sum2/=8;
		j2--;
	}
	
	for(int i=0; i<16; i++) {
		if(n1[i]!=-1) {
			cout << n1[i];
		}
	}
	cout << endl;
	for(int i=0; i<16; i++) {
		if(n2[i]!=-1) {
			cout << n2[i];
		}
	}
}