クリプトアリスマティックパズル
与えられた3つの文字列
a
、b
、c
に対して、それぞれの文字に数字を割り当て、a + b = c
という式が成り立つようにする問題です。ここで、与えられた文字列に合う有効な数字の割り当てが必ず存在すると保証されています。数字の割り当てが有効であるためには、以下の条件を満たす必要があります:
- 文字列
a
、b
、c
で使用される各文字は、それぞれ異なる0~9の数字を表す。
- 結果として得られる数が先頭にゼロを含んではいけない。ただし、ただの「0」一桁のみからなる場合は例外とする。
入力
入力は3行で構成され、それぞれの行に文字列が与えられます。文字列
a
、b
、c
はすべて小文字の英字のみを含み、長さは1以上15以下です(両端を含む)。これらの文字列に対して、方程式が成り立つ数字の割り当てが必ず存在します。
出力
3つの文字列に対応する数を、与えられた順番で出力してください。
もし、方程式を満たす正しい割り当てが複数ある場合、そのうちのどれを出力してもかまいません。
例
入力 | 出力 |
send
more
money | 9567
1085
10652 |
a
b
b | 0
3
3 |
Constraints
Time limit: 8 seconds
Memory limit: 512 MB
Output limit: 1 MB