Submission
Status:
PPPPPP-PPP
Subtask/Task Score:
90/100
Score: 90
User: FIrmTInn
Problemset: แปลงเลขฐาน
Language: cpp
Time: 0.004 second
Submitted On: 2025-10-13 23:03:27
#include<iostream>
#include<cmath>
#include<vector>
using namespace std;
int main(){
string str1;
int digit, idx = 0;
long long val = 0;
cin >> str1;
int len = str1.length();
int multiple = len-1;
for(int i=0;str1[i] != '\0';i++){
if(str1[i] >= '1' && str1[i] <= '9'){
digit = str1[i] - '0';
}
else if(str1[i] >= 'A' && str1[i] <= 'F'){
digit = str1[i] - 'A' + 10;
}
val += digit * pow(16,multiple);
multiple--;
}
vector<int> arr1;
for(int i=val;i>0;i/=2){
arr1.push_back(i % 2);
}
vector<int> arr2;
for(int i=val;i>0;i/=8){
arr2.push_back(i % 8);
}
int size1 = arr1.size(), size2 = arr2.size();
vector<int> arr1_re(size1);
vector<int> arr2_re(size2);
for(int i=size1-1;i>=0;i--){
arr1_re[idx] = arr1[i];
idx++;
}
idx = 0;
for(int i=size2-1;i>=0;i--){
arr2_re[idx] = arr2[i];
idx++;
}
for(int i=0;i<size1;i++){
cout << arr1_re[i];
}
cout << "\n";
for(int i=0;i<size2;i++){
cout << arr2_re[i];
}
return 0;
}