Data un'aggiunta piramide , determinare se può essere risolto. Una piramide di addizione è composta da strati , ciascuno con un numero in meno di quello sotto di esso. Il livello è simbolizzato come . è lo strato base e è lo strato sopra . Il ° numero di è indicato come . è il numero più a sinistra di e è il numero a destra di . Puoi visualizzare residente in cima a e al centro, da cui il nome "addizionepiramide".
- , ovvero ogni numero nella piramide è un numero intero positivo diverso da zero.
- , ovvero ogni numero che non si trova sullo strato base della piramide è la somma dei due numeri sottostanti.
- Se ha numeri, ha numeri, quindi è il numero più a destra di . In termini più semplici, ogni livello ha un numero in meno rispetto al livello sottostante.
Un puzzle piramide addizionale è una piramide addizionale con alcuni numeri rimossi (sostituiti con ). La sua soluzione è una piramide di aggiunta , dove , ovvero i numeri originariamente presenti nel puzzle sono rimasti invariati. Un simile puzzle può avere più di una soluzione.
Il tuo compito è, dato un puzzle piramide addizionale, per determinare se ha esattamente una soluzione.
Ingresso
È possibile ottenere input in uno dei seguenti moduli, ma essere coerenti:
- Matrice di strati.
- Matrice di strati, a forma di piramide che utilizza un valore intero non positivo coerente come separatore tra gli elementi (usato solo una volta ogni volta) e imbottitura sinistra e destra. Il separatore e l'imbottitura devono essere uguali.
- Matrice di livelli con un'imbottitura destra o sinistra valida coerente (in questo caso è necessario essere coerenti e non mescolare l'imbottitura destra e sinistra).
Si noti che è necessario utilizzare un valore coerente che non sia un numero intero strettamente positivo per rappresentare un numero mancante; questo valore non può essere utilizzato come riempimento. Inoltre, puoi prendere i livelli concatenati (puoi ancora separarli) e l'ordinamento può essere dalla base alla cima o dall'alto alla base.
Produzione
Uno di due valori distinti coerenti, in cui uno rappresenta la presenza di una soluzione unica e l'altro l'assenza di una soluzione o la presenza di più di una soluzione.
Regole
- sarà sempre vero se , ovvero l'ingresso è garantito che non contenga un numero in cima ad altri due numeri che non è la loro somma se tutti e tre i numeri sono noti.
- , cioè la piramide conterrà almeno un numero noto.
- Non fare queste cose .
- Questo è code-golf , quindi vince la risposta più breve! Tuttavia, non lasciarti scoraggiare dal pubblicare una soluzione solo perché la tua lingua è "troppo dettagliata".
Casi test
Un array con i livelli dall'alto verso il basso viene utilizzato per questi casi di test, con 0
rappresentazione .
[[10], [0, 0], [0, 2, 0], [0, 0, 0, 1]] -> True
[[32], [0, 0], [0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]] -> True
[[0], [1, 1]] -> True
[[1], [0, 0]] -> False
[[10], [5, 5], [2, 3, 2], [0, 0, 0, 0]] -> False
[[5], [0, 0], [0, 0, 0]] -> False
Esempi lavorati
I casi di test sono lavorati qui.
Soluzione unica 1
I passaggi 5-6 sono simili a 4.
Quindi qui abbiamo la nostra soluzione unica.
Soluzione unica 2
Passaggio 1: non esiste un approccio ovvio qui, quindi proviamo a utilizzare i valori minimi possibili.
Passaggi 2-5: sembra che i valori minimi risultino in una soluzione, quindi questa è l'unica soluzione ed è quindi unica.
Suggerimento: esiste un teorema sugli enigmi piramidali addizionali legati a questo enigma che puoi provare se pensi abbastanza bene.
Soluzione unica 3
Questa è una soluzione ovviamente unica.
Nessuna soluzione 1
Nessuna soluzione 2
Soluzione non unica
Due soluzioni:
Dal momento che ci sono almeno due soluzioni, non esiste una soluzione unica.