B - ルイス・キャロルの記憶術
Editorial
/
古今東西、数字の記憶には様々な方法が取り入れられてきた。
例えば日本では e の値を「鮒一鉢二鉢一鉢二鉢至極惜しい」などとして記憶するし、欧米では π の値を
この表に従い、覚えたい数字を子音に変換し、これを用いた単語をひとつ作って文にすることで、キャロルは年号などを覚えていたという。
なお、子音以外の文字 (
例えば、モーツァルトの正没年は
入力は以下の形式で標準入力から与えられる。
与えられた単語から変換された数字を 1 行で出力せよ。
ただし、変換された数字と数字の間には半角スペースを 1 つ入れること。
整数の頭に
また、出力の最後には改行をいれること。
変換表により、
こうして、
同様にして、
[訂正] 2013.01.19 21:16 1 行目が誤って 5 になっておりましたので、修正いたしました。


Time Limit: 2 sec / Memory Limit: 256 MB
問題文
例えば日本では e の値を「鮒一鉢二鉢一鉢二鉢至極惜しい」などとして記憶するし、欧米では π の値を
Yes, I know a number!
として記憶する。
「不思議の国のアリス」の著者として知られるルイス・キャロル (本名:チャールズ・ラトウィッジ・ドジソン) は、子音のみを用いた独自の記憶術を作り、様々な年号を記憶していたらしい。
これによれば、次のように、文字に数字を割り当てていたという。

図:文字から数字への割り当て
なお、子音以外の文字 (
a,e,i,o,u,y
や、コンマ、ピリオド等) はすべて無視され、大文字も小文字も同じように変換される。例えば、モーツァルトの正没年は
Mozart plays magic.
とし、plays を 756 に変換し、 magic を 791 に変換して、 1756 年 ~ 1791 年と覚えることができるわけ
である。
この方式での記憶文が与えられるとき、それを前から順に変換し、変換した数字を出力するプログラムを作成せよ。入力
N w_{0} w_{1} ... w_{N-1}
- 1 行目は単語の数を表す整数 N(1≦N≦1,000) が与えられる。
- 2 行目は単語が半角スペース区切りで与えられる。
- 単語とは
半角英字
ピリオド
コンマ
から構成される。 - 各単語は 1 文字以上 30 文字以内である。
出力
ただし、変換された数字と数字の間には半角スペースを 1 つ入れること。
整数の頭に
0
がつく場合もあるが、その場合は 0
も出力すること。また、出力の最後には改行をいれること。
入力例 1
3 Mozart plays magic.
出力例 1
7003 756 791
Mozart
のM
を 7 に変更します。z
を 0 に変更します。r
を 0 に変更します。t
を 3 に変更します。こうして、
Mozart
から 7003 へ変換することができました。
plays
から 756 へ、magic
から 791 へ変換します。入力例 2
3 Columbus found USA.
出力例 2
15716 492 6
Columbus
を変換して 15716found
を変換して 492USA
を変換して 6 をそれぞれ得ることができます。
入力例 3
7 I have a scissors for right hand.
出力例 3
85 616606 40 0983 892
I
やa
は母音のみからなる単語ですので、これらの単語は無視され、全部で 5 個の整数が出力されます。
入力例 4
4 abc ab aa aiueo
出力例 4
11 1
- 最後に余分な空白を入れてはいけません。
入力例 5
4 aaa aa a aa
出力例 5
- 母音のみからなる単語しかないので、最後の改行のみが出力されます。