Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: goine

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

Language: cpp

Time: 0.002 second

Submitted On: 2025-10-12 11:01:34

#include<iostream>
#include<map>
#include<algorithm>
using namespace std;

map<char, int> trans = {
	{'0', 0},
	{'1', 1},
	{'2', 2},
	{'3', 3},
	{'4', 4},
	{'5', 5},
	{'6', 6},
	{'7', 7},
	{'8', 8},
	{'9', 9},
	{'A', 10},
	{'B', 11},
	{'C', 12},
	{'D', 13},
	{'E', 14},
	{'F', 15},
};

int main() {
	string x;
	cin >> x;

	int sum = 0;
	for (int i = 0; i < x.length(); i++) {
		sum *= 16;
		sum += trans[x[i]];
	}

	string ans1;
	string ans2;
	int s = sum;

	while (sum > 0) {
		ans1 += sum % 2 + '0';
		sum /= 2;
	}

	while (s > 0) {
		ans2 += s % 8 + '0';
		s /= 8;
	}

	reverse(ans1.begin(), ans1.end());
	reverse(ans2.begin(), ans2.end());

	cout << ans1 << '\n';
	cout << ans2 << '\n';
	return 0;
}