/
Time Limit: 2 sec / Memory Limit: 256 MiB
問題文
私は今 ARC ゲームズという会社の Ancient Royal Coders という、冒険しながら競技プログラミングの知識が身につくロールプレイングゲームをプレーしている真っ最中である。
といってもまだゲームは始まったばかりで、これから最初のダンジョンへ向かうところだ。とりあえず薬草をいくつか購入するために街にあるショップへ行っておこう。
ショップへ到着し薬草を購入しようとして値段を確認すると、これがなんだか奇妙だ。画面には 1Z0 ゴールド と値段が表示されているが、これは本当に 120 なのだろうか……?
他のアイテムもよく見てみると、なんと一部の数字が似たようなアルファベットに置き換わっているではないか!これでは、値段が 36 進数として解釈されてしまい法外な金額を要求されかねない!
なるほどなるほど、ぼったくりを回避するためにはこの奇妙な表記を数字のみからなる正しい表記に戻すためのプログラムを書かないといけないというわけか。序盤からなかなか骨のあるゲームだ。調べてみたところ、置き換わっている文字の種類は以下のようなものがあるらしい。
O→0D→0I→1Z→2S→5B→8
さて、早速そのためのプログラムを書くこととしよう。
入力
入力は以下の形式で標準入力から与えられる。
S
-
1 行目には、画面に表示されている値段 S が書かれている。
- S は 1 文字以上 8 文字以下の文字列で、
0,1,2,3,4,5,6,7,8,9,O,D,I,Z,S,Bの 16 種類の文字からなる。 - S の先頭の文字は
0,O,Dのいずれでもない。
- S は 1 文字以上 8 文字以下の文字列で、
出力
画面に表示されている値段を、数字のみからなる正しい表記に直したときの金額を 1 行に出力せよ。
出力の末尾にも改行をいれること。
入力例1
1Z0
出力例1
120
Z を対応する 2 に書き換えると、120 ゴールドが正しい金額であることがわかります。
この例からもわかるように、たとえば必ずしもすべての 1 が I に書き換わっているとは限りません。
入力例2
4ZD6O
出力例2
42060
O と D はどちらも 0 に対応しています。
入力例3
BI9Z
出力例3
8192