問題一覧 > 通常問題

No.2385 Parse Integer with Radix

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 207
作問者 : 👑 MizarMizar / テスター : cleanttedcleantted 👑 tatyamtatyam 👑 PCTprobabilityPCTprobability 👑 amentorimaruamentorimaru
0 ProblemId : 9797 / 出題時の順位表 / 自分の提出
問題文最終更新日: 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 で始まることはない

入力

$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もしくは右上の雲マークをクリックしてアカウントを作成してください。