Il re dell'antica Roma ha difficoltà a determinare se un quadrato magico è valido o meno, perché il quadrato magico che sta controllando non include alcun separatore tra i numeri. Ha assunto un ingegnere informatico per aiutarlo a determinare se un quadrato magico è valido o meno.
Descrizione dell'input
L'input arriva su STDIN o argomenti della riga di comando. Non è possibile pre-inizializzare l'ingresso in una variabile (ad es. "Questo programma prevede l'ingresso in una variabile x
"). L'input è nel seguente formato:
<top>,<middle>,<bottom>
Ognuno di <top>
, <middle>
ed <bottom>
è una stringa che sarà sempre e solo contenere i caratteri maiuscoli I
, V
e X
. Non conterrà spazi o altri caratteri. Ogni stringa rappresenta tre numeri romani, risultando in una matrice di numeri 3x3. Tuttavia, questi numeri romani possono (ma non necessariamente) essere ambigui . Mi permetta di illustrare questo con un esempio. Considera la seguente riga di esempio di tre numeri romani, senza spazi tra ogni numero:
IVIIIIX
Poiché non ci sono spazi tra le lettere, ci sono due possibilità per i numeri qui:
- 1, 8, 9 (
I VIII IX
) - 4, 3, 9 (
IV III IX
)
Se si considera che tutte e tre le righe della matrice possono essere ambigue, esiste la possibilità che ci siano molte matrici 3x3 diverse da un singolo input.
Notare che sequenze come 1, 7, 1, 9 ( I VII I IX
) non sono possibili perché ogni riga rappresenterà sempre tre numeri romani. Si noti inoltre che i numeri romani devono essere validi, quindi non sono possibili sequenze come 1, 7, 8 ( I VII IIX
).
Descrizione dell'uscita
Produzione:
- Un numero intero
A
, doveA
è il numero di matrici 3x3 uniche che possono essere formate dall'input ambiguo, e: - Un valore veritiero se una qualsiasi delle matrici 3x3 uniche forma un quadrato magico o:
- Un valore falso se nessuna delle uniche matrici 3x3 formano un quadrato magico.
I valori di verità e falsità devono essere coerenti. Sono separati da una virgola.
Sono necessarie alcune spiegazioni su ciò che viene considerato unico. Fintanto che una matrice non ha esattamente gli stessi numeri esattamente nelle stesse posizioni di una matrice trovata in precedenza, viene considerata unica. Ciò significa che le riflessioni, ecc. Delle matrici trovate in precedenza vengono considerate uniche.
Ingressi e uscite di esempio
In questi esempi, utilizzo true
come valore di verità e false
valore di falsità.
Input: VIIIIVI,IIIVVII,IVIXII
Output: 24,true
(Il triangolo magico è 8-1-6, 3-5-7, 4-9-2.)
Ingresso: IIIXVIII,IVIII,VIIII
Uscita:210,false
extra
- Non è consentito utilizzare le funzioni integrate di conversione del numero romano se la lingua scelta ne possiede una.