No.2385 Parse Integer with Radix
レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限
: 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 211
作問者 : 👑 Mizar / テスター : cleantted tatyam PCTprobability 👑 amentorimaru
タグ : / 解いたユーザー数 211
作問者 : 👑 Mizar / テスター : cleantted tatyam PCTprobability 👑 amentorimaru
問題文最終更新日: 2023-07-17 19:55:22
問題文
あなたは、$2$ 進法・$8$ 進法・$10$ 進法・$16$ 進法のいずれかの形式で表現された非負整数を処理して、$10$ 進数に変換するプログラムを作成することになりました。
$Q$ 個のクエリが与えられます。
$i$ 番目のクエリでは、非負整数 $N_i$ を表現する文字列 $S_i$ が与えられるので、 $N_i$ を $10$ 進法で出力してください。 文字列 $S_i$ は、以下のいずれかの形式で与えられます。
- $2$ 進法の場合: $S_i$ は "
0b
" から始まり、$N_i$ を文字種 {0
,1
} からなる $2$ 進法で表現したものが続きます。 - $8$ 進法の場合: $S_i$ は "
0o
" から始まり、$N_i$ を文字種 {0
,1
,2
,3
,4
,5
,6
,7
} からなる $8$ 進法で表現したものが続きます。 - $10$ 進法の場合: $S_i$ は $N_i$ を文字種 {
0
,1
,2
,3
,4
,5
,6
,7
,8
,9
} からなる $10$ 進法で表現したものです。 -
$16$ 進法の場合: $S_i$ は "
0x
" から始まり、$N_i$ を文字種 {0
,1
,2
,3
,4
,5
,6
,7
,8
,9
,a
,b
,c
,d
,e
,f
} からなる $16$ 進法で表現したものが続きます。
$16$ 進数の {0
,1
,2
,3
,4
,5
,6
,7
,8
,9
,a
,b
,c
,d
,e
,f
} は、それぞれ $10$ 進数で $\lbrace 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 \rbrace$ を表します。
$32$ bit 整数型に答えが収まるとは限らないことに注意してください。
制約
- $1\leq Q\leq 100$
- $0\leq N_i\leq 10^{18}$
- $Q,N_i$ は整数
-
$S_i$ は $2$ 進法・$8$ 進法・$10$ 進法・$16$ 進法 のいずれかによって整数 $N_i$ を表現する、数字・英小文字からなる文字列
- $2$ 進法の場合: $S_i$ は
0b
で始まり、以降は $1$ 文字以上の 文字種 {0
,1
} からなる文字列 - $8$ 進法の場合: $S_i$ は
0o
で始まり、以降は $1$ 文字以上の 文字種 {0
,1
,2
,3
,4
,5
,6
,7
} からなる文字列 - $16$ 進法の場合: $S_i$ は
0x
で始まり、以降は $1$ 文字以上の 文字種 {0
,1
,2
,3
,4
,5
,6
,7
,8
,9
,a
,b
,c
,d
,e
,f
} からなる文字列 - $10$ 進法の場合: $S_i$ は
0b
,0o
,0x
のいずれでも始まらない、 $1$ 文字以上の文字種 {0
,1
,2
,3
,4
,5
,6
,7
,8
,9
} からなる文字列 - $N_i=0$ かつ $2$ 進法の場合: $S_i$ は
0b0
- $N_i=0$ かつ $8$ 進法の場合: $S_i$ は
0o0
- $N_i=0$ かつ $10$ 進法の場合: $S_i$ は
0
- $N_i=0$ かつ $16$ 進法の場合: $S_i$ は
0x0
- $N_i\ne 0$ かつ $2$ 進法の場合: $S_i$ は
0b0
で始まることはない - $N_i\ne 0$ かつ $8$ 進法の場合: $S_i$ は
0o0
で始まることはない - $N_i\ne 0$ かつ $10$ 進法の場合: $S_i$ は
0
で始まることはない - $N_i\ne 0$ かつ $16$ 進法の場合: $S_i$ は
0x0
で始まることはない
- $2$ 進法の場合: $S_i$ は
入力
$Q$ $S_1$ $S_2$ $S_3$ $\ \vdots$ $S_Q$
最初の行にその入力ケースのクエリ個数 $Q$ が、それ以降の $Q$ 行には整数 $N_i$ を表現した文字列 $S_i$ が与えられる。
出力
$N_1$ $N_2$ $N_3$ $\ \vdots$ $N_Q$
$Q$ 行出力せよ。 $i\ (1 \le i \le Q)$ 行目には、 $S_i$ が表現する非負整数 $N_i$ を $10$ 進法にて出力せよ。
サンプル
サンプル1
入力
24 0b0 0o0 0 0x0 0b1 0o1 1 0x1 0b1010 0o12 10 0xa 0b110110110100110110100101110100110001100001111001101001110 0o6664664564614171516 123456789012345678 0x1b69b4ba630f34e 0b110111100000101101101011001110100111011000111111111111111111 0o67405553164730777777 999999999999999999 0xde0b6b3a763ffff 0b110111100000101101101011001110100111011001000000000000000000 0o67405553164731000000 1000000000000000000 0xde0b6b3a7640000
出力
0 0 0 0 1 1 1 1 10 10 10 10 123456789012345678 123456789012345678 123456789012345678 123456789012345678 999999999999999999 999999999999999999 999999999999999999 999999999999999999 1000000000000000000 1000000000000000000 1000000000000000000 1000000000000000000
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。