atcoder#ABC198D. [ABC198D] Send More Money

[ABC198D] Send More Money

配点 : 400400

問題文

英小文字からなる文字列 S1,S2,S3S_1,S_2,S_3 が与えられます。覆面算 S1+S2=S3S_1+S_2=S_3 を解いてください。

正確には、次の 33 つの条件をすべて満たすような正の整数の組 N1,N2,N3N_1,N_2,N_3 が存在するか判定し、存在するならばそのうち 11 つを求めてください。 ここで、N1,N2,N3N_1, N_2, N_3 を (先頭に余分な 00 をつけないで) 十進表記した文字列をそれぞれ N1,N2,N3N'_1, N'_2, N'_3 とします。

  • NiN'_i の文字数は、SiS_i の文字数に等しい
  • N1+N2=N3N_1+N_2=N_3 を満たす
  • SiS_ixx 文字目と SjS_jyy 文字目が等しいとき、またその時に限り、NiN'_ixx 文字目と NjN'_jyy 文字目が等しい

制約

  • S1,S2,S3S_1,S_2,S_3 は英小文字のみからなる長さ 11 以上 1010 以下の文字列

入力

入力は以下の形式で標準入力から与えられる。

S1S_1

S2S_2

S3S_3

出力

条件を満たすような正整数の組 N1,N2,N3N_1,N_2,N_3 が存在するならば、そのような組の 11 つを改行区切りで出力せよ。 存在しないなら、代わりに UNSOLVABLE と出力せよ。

a
b
c
1
2
3

(N1,N2,N3)=(4,5,9)(N_1, N_2, N_3) = (4,5,9) などを出力しても正解となります。(1,1,2)(1,1,2)33 つ目の条件を満たしていない (a,b がともに 11 に対応している) ため、不正解となります。

x
x
y
1
1
2

(N1,N2,N3)=(3,3,6)(N_1, N_2, N_3) = (3,3,6) などを出力しても正解となります。(1,2,3)(1,2,3)33 つ目の条件を満たしていない (1,21,2 がともに x に対応している) ため、不正解となります。

p
q
p
UNSOLVABLE
abcd
efgh
ijkl
UNSOLVABLE
send
more
money
9567
1085
10652