REBUS - Rebus liczbowy
Napisz program do rozwiązywania liczbowych rebusów na dodawanie.
Rebus ma postać:
<S1>+<S2>=<S3>
gdzie <S1>, <S2> oraz <S3> to są ciągi dużych łacińskich liter, na przykład:
ONE+ONE=TWO
Rozwiązanie rebusu to:
<N1>+<N2>=<N3>
gdzie <N1>, <N2> oraz <N3> to są liczby naturalne, otrzymane z ciągów <S1>, <S2> oraz <S3> odpowiednio poprzez zastąpienie liter przez cyfry w taki sposób, że tym samym literom odpowiadają te same cyfry, a różnym literom odpowiadają różne cyfry. Przy czym N3=N1+N2. Na przykład, jednym z rozwiązań rebusu przykładowego jest (pozwalamy na zero na początku liczby):
085+085=170
Input
Na wejściu podane są rebusy, po jednym w linijce. Każdy rebus zawiera nie więcej niż dziesięć różnych liter. Długość rebusu nie przekracza pięćdziesięciu symboli. Wejście kończy wiersz pusty.
Output
Na wyjściu dla każdego rebusu trzeba wyświetlić jego rozwiązania. Jeżeli rozwiązań jest kilka, należy wyświetlić wszystkie, każde w oddzielnej linijce, w kolejności leksyko-graficznej. Dla rebusu, który nie ma rozwiązań, nie trzeba wyświetlać nic.
Example
Input: SHE+HE=THEY
DONALD+GERALD=ROBERT
WMII+UWM=KORTOWO
Output: 562+62=0624
674+74=0748
526485+197485=723970
Added by: | Aleksander Denisiuk |
Date: | 2014-02-04 |
Time limit: | 0.100s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | All except: ASM64 |