Un meandro che riempie la griglia è un percorso chiuso che visita ogni cella di una griglia quadrata almeno una volta, senza mai attraversare un bordo tra le celle adiacenti più di una volta e mai attraversando se stesso. Per esempio:
Una volta riempita, ogni cella della griglia può essere rappresentata da una delle seguenti 8 tessere:
Numerate in questo modo, le tessere del meandro sopra possono essere rappresentate da questa matrice:
5 6 5 6
4 8 3 2
5 7 6 2
4 3 4 3
Il tuo compito è completare un meandro di riempimento della griglia dato un set incompleto di tessere. Ad esempio, il meandro incompleto:
... che può essere rappresentato usando 0
s per le tessere mancanti:
5 0 0 0 6
0 0 7 0 0
0 0 0 0 3
2 4 0 0 0
0 0 3 0 0
... potrebbe essere completato in questo modo:
... vale a dire:
5 6 5 1 6
4 8 7 6 2
5 7 7 7 3
2 4 8 8 6
4 1 3 4 3
specificazioni
- L'ingresso avrà sempre almeno e al massimo riquadri (non vuoti), dove .
- È possibile utilizzare qualsiasi set di valori per rappresentare i riquadri, purché sia specificato nella risposta.
- L'input e l'output possono essere in qualsiasi formato e ordine, purché sia specificato nella risposta.
- Esisterà almeno una soluzione valida per tutti gli input (ovvero non è necessario gestire input non validi).
- Si applicano le regole I / O standard .
- Sono vietate le scappatoie standard .
- Le spiegazioni, anche per le lingue "pratiche", sono incoraggiate.
Casi test
Ingresso ( Θ ):
0 6 0 0
Uscita ( Θ ):
5 6 4 3
Ingresso ( Θ ):
5 6 5 6 4 0 3 2 5 7 6 2 4 3 4 3
Uscita ( Θ ):
5 6 5 6 4 8 3 2 5 7 6 2 4 3 4 3
Ingresso ( Θ ):
5 0 0 0 6 0 0 7 0 0 0 0 0 0 3 2 4 0 0 0 0 0 3 0 0
Uscita ( Θ ):
5 6 5 1 6 4 8 7 6 2 5 7 7 7 3 2 4 8 8 6 4 1 3 4 3