Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: eefirefire

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

Language: cpp

Time: 0.002 second

Submitted On: 2026-09-20 14:16:08

#include <bits/stdc++.h>
using namespace std;
// https://grader.gchan.moe/problemset/c1_bkk66_2

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

    // Convert 16b -> 10b
    int base_ten = 0;
    string b2;
    string b8;


    for(int i=0;i<s.length();i++){
        if(isdigit(s[i])){
            base_ten *= 16;
            base_ten += s[i] - '0';
        }
        else{
            base_ten *= 16;
            base_ten += s[i] - 'A' + 10;
        }
    }
    int base_ten2 = base_ten;
    // Convert b10 -> b2
    while (base_ten > 0) {
        b2.push_back(base_ten % 2 + '0');
        base_ten /= 2;
    }
    
    // Convert b10 -> b8
    while (base_ten2 > 0) {
        b8.push_back(base_ten2 % 8 + '0');
        base_ten2 /= 8;
    }

    reverse(b2.begin(), b2.end());
    reverse(b8.begin(), b8.end());

    cout << b2 << "\n" << b8;

}