SEND + MORE = MONEY P46370


Statement
 

pdf   zip

thehtml

El títol d’aquest problema és el mateix que el d’un trencaclosques conegut, en el qual cal substituir cada lletra per un dígit diferent, de manera que la suma doni el resultat demanat. La solució del problema original, única, és 9567 + 1085 = 10652, perquè no es permet que el dígit de més a l’esquerra sigui 0. En aquesta versió simplificada sí que ho permetem, així que hi ha més solucions.

Podeu trobar totes les solucions d’una equació donada?

Entrada

L’entrada comença amb un natural n entre 3 i 10, seguit d’n paraules: les n−1 primeres tenen la mateixa longitud m, i formen part de la part esquerra de l’equació, mentre que l’última, de mida m+1, n’és el resultat. Podeu suposar que les paraules només tenen lletres majúscules.

Sortida

Per a cada cas, escriviu totes les solucions possibles. Sempre n’hi haurà almenys una.

Informació sobre el corrector

Podeu escriure les solucions d’aquest exercici en qualsevol ordre.

Observació

Hi ha diverses solucions per a aquest problema, amb diversos graus d’optimització. Us suggerim fer-ne alguna de relativament senzilla, i que la intenteu millorar només si us sobra temps.

Public test cases
  • Input

    3 SEND MORE MONEY
    

    Output

    2817 + 0368 = 03185
    2819 + 0368 = 03187
    3712 + 0467 = 04179
    3719 + 0457 = 04176
    3821 + 0468 = 04289
    3829 + 0458 = 04287
    5731 + 0647 = 06378
    5732 + 0647 = 06379
    5849 + 0638 = 06487
    6415 + 0734 = 07149
    6419 + 0724 = 07143
    6524 + 0735 = 07259
    6851 + 0738 = 07589
    6853 + 0728 = 07581
    7316 + 0823 = 08139
    7429 + 0814 = 08243
    7531 + 0825 = 08356
    7534 + 0825 = 08359
    7539 + 0815 = 08354
    7643 + 0826 = 08469
    7649 + 0816 = 08465
    8324 + 0913 = 09237
    8432 + 0914 = 09346
    8542 + 0915 = 09457
    9567 + 1085 = 10652
    
  • Input

    4 AB CA AC CAC
    

    Output

    82 + 18 + 81 = 181
    
  • Input

    7 Z Z Z Z Z Z AB
    

    Output

    1 + 1 + 1 + 1 + 1 + 1 = 06
    3 + 3 + 3 + 3 + 3 + 3 = 18
    5 + 5 + 5 + 5 + 5 + 5 = 30
    7 + 7 + 7 + 7 + 7 + 7 = 42
    9 + 9 + 9 + 9 + 9 + 9 = 54
    
  • Input

    3 A A AA
    

    Output

    0 + 0 = 00
    
  • Information
    Author
    Salvador Roura
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++