TeraCoder2024
コンテスト日時
2024/12/22 (Su) 14:00 - 18:00

J - radix-N conversion

Assam
2
s
1024
MB
200

問題文

$N$ 進数の数値列 $S$ を $M$ 進数に変換した時の結果を出力してください。
ただし、$N$ 進数, $M$ 進数で利用される記号は次のように定義されます。

  • これまでで利用していた記号に加えて以下の条件に沿って記号を加える
  • 2進数では0,1を利用する
  • 3 ~ 10進数は、2 ~ 9までの数字を、昇順に次の数字を利用する
  • 11 ~ 36進数は、A ~ Zまでの大文字アルファベットを昇順に一文字ずつ利用する
  • 37 ~ 62進数は、a ~ zまでの小文字アルファベットを昇順に一文字ずつ利用する

例えば,2進数で利用される記号は0, 1、8進数で利用される記号は0,1,2,3,4,5,6,7、11進数で利用される記号は0, ... , 9, A、37進数では0, ..., 9, A, ..., Z, aです。

制約

  • $2 \leq N, M \leq 62$
  • $N$ と $M$ はそれぞれ異なる整数
    $S(10)$が$S$を10進数に変換した結果とした時
  • $0 \leq S(10) \leq 10^{18}$

入力

1行目に $N$ と $M$ が、2行目に $N$ 進数の数値列 $S$ が与えられる。

$N$ $M$
$S$

出力

$N$ 進数の数値列 $S$ を $M$ 進数に変換した結果を出力してください。

入力例 1
10 2 10
出力例 1
1010

10進数までは数値のみ利用します。2進数で利用できるのは「0」と「1」のみです。
10進数の10を2進数に変換すると1010になります。

入力例 2
10 16 170
出力例 2
AA

11進数からは大文字アルファベットを利用します。
10進数の170を16進数に変換するとAAになります。

入力例 3
37 10 a
出力例 3
36

37進数からは小文字アルファベットも利用します。

入力例 4
10 54 2151644657499665
出力例 4
TeraCoder
提出
C++23 (g++ 12.2.0)