覆面算のパズルが与えられたら、正しい答えを見つけましょう。
覆面算は、単語の文字を数字に置き換えるパズルです。
たとえば、SEND + MORE = MONEYは次のようになります。
S E N D
M O R E +
-----------
M O N E Y
これを正しい数字に置き換えると、次のようになります。
9 5 6 7
1 0 8 5 +
-----------
1 0 6 5 2
これは、それぞれの文字が異なる数字に置き換えられ、単語を数字に変換すると正しい足し算になるからです。
それぞれの文字は異なる数字を表す必要があり、複数桁の数の先頭の数字は0であってはいけません。
スクリプトは、覆面算のパズルを1つの文字列として標準入力(stdin)から受け取ります。パズルの文字列は、WORD1 + WORD2 + ... == RESULTという形式です。
例えば、次のようになります。
SEND + MORE == MONEY
パズルに解がある場合は、LETTER=DIGITの組を空白で区切り、文字のアルファベット順に並べた1行を出力します。
上の例の場合、出力は次のようになります。
D=7 E=5 M=1 N=6 O=0 R=8 S=9 Y=2
パズルに複数の正しい解がある場合は、そのうちのどれを出力してもかまいません。
パズルに解がない場合は、何も出力しません(空行を出力します)。