Problema número 389

Aritmética verbal

Tiempo máximo: 2,000-3,000 sMemoria máxima: 4096 KiB

La cantidad de acertijos, pasatiempos y rompecabezas que han ido surgiendo a lo largo de los siglos es inmensa. Entre ellos, los puzzles matemáticos constituyen una categoría en sí misma, con acertijos sobre aritmética, combinatoria, topología o probabilidad.

Hoy nos quedaremos con la llamada aritmética verbal, o criptaritmética. En ella, los puzzles son operaciones matemáticas en las que los dígitos han sido sustituídos por letras, y hay que encontrar los números originales.

ada767
+  byron ⇒ +  39508
molar40275

Entrada

Cada caso de prueba es una operación aritmética (suma o producto) en la que los dígitos han sido sustituídos por letras minúsculas del alfabeto inglés. Se proporcionan los dos operandos separados por el operador ("+" o "*"), seguidos de un símbolo igual y el resultado de la operación, también en letras. Los números y los operadores están separados por un espacio.

Los operandos no tendrán más de 8 letras minúsculas; además, se garantiza que no habrá más de 10 letras diferentes en total.

Salida

Para cada caso de prueba el programa escribirá la operación asociada tras convertir las letras a dígitos, de modo que todas las apariciones de la misma letra se conviertan al mismo dígito y viceversa, y la operación aritmética sea correcta. Se garantiza que la solución será única.

Se debe añadir un espacio antes y después de cada operador. No se considera válida una asignación en la que cualquiera de los números tenga ceros superfluos a la izquierda, pero ten en cuenta que alguno de los valores podría ser 0, que sí es válido.

Entrada de ejemplo

ada + byron = molar
ada * byron = leyenda
acepta + elreto = mental
solo + sola = baile

Salida de ejemplo

767 + 39508 = 40275
202 * 36951 = 7464102
473924 + 356321 = 830245
6797 + 6793 = 13590