Oh no! Nemo, il nostro piccolo pesce pagliaccio si perde in questo oceano ASCII e suo padre Marlin sta cercando di trovarlo.
Il tuo compito è di portare Marlin in sicurezza su Nemo. Ma attenzione, abbiamo una frenesia di cibo Bruce a piede libero, quindi meglio evitarlo a tutti i costi!
Dettagli
Ti viene data una griglia oceanica ASCII rettangolare contenente solo alfabeti minuscoli a-z. Questo oceano avrà nemo, marline bruceal suo interno, sotto forma di un poliomino continuo, partendo sempre dalla parte più alta della prima colonna del poliomino. Ad esempio, tra tutti i possibili tetrominos, quelli validi sono elencati nello snippet di seguito
Ma moduli come questi non sono validi e non saranno presenti nell'input:
omen
ne
mo
nem
o
o
m
en
nem
o
n
eo
m
Infine, il tuo compito è quello di trovare un percorso dalla marlintessera poliomino alla tessera nemopoliomino assicurandoti che qualsiasi cella nel tuo percorso non sia adiacente alla brucetessera poliomino. L'output dovrebbe sostituire tutti gli alfabeti che non fanno parte del marlinriquadro, del nemoriquadro e del percorso che li collega entrambi con un carattere dell'intervallo ASCII stampabile (incluso lo spazio) diverso da quello minuscolo a-z.
Esempio
Se l'oceano di input è il seguente:
oxknvvolacycxg
xmliuzsxpdzkpw
warukpyhcldlgu
tucpzymenmoyhk
qnvtbsalyfrlyn
cicjrucejhiaeb
bzqfnfwqtrzqbp
ywvjanjdtzcoyh
xsjeyemojwtyhi
mcefvugvqabqtt
oihfadeihvzakk
pjuicqduvnwscv
(con i 3 polominomi:
...n..........
.mli..........
.ar...........
..............
....b.........
....ruce......
..............
.....n........
.....emo......
..............
..............
..............
)
Quindi una soluzione valida potrebbe apparire come:
...n..........
.mli..........
.ar...........
.u............
.n............
.i............
.z............
.wvjan........
.....emo......
..............
..............
..............
Lo snippet di seguito contiene alcuni altri esempi:
Appunti
- La griglia sarà sempre un rettangolo perfetto e conterrà solo una tessera di poliomino di
nemo,marlinebruce. - Il tuo percorso non deve attraversare
brucené una delle 4 celle adiacenti (su, giù, sinistra e destra) di nessuna cella nellabrucetessera. - È sempre garantito che ci sarà almeno un percorso valido da
marlinanemo. - Non è necessario un percorso più breve qui, quindi impazzisci!
- Anche se non è necessario trovare il percorso più breve, qualsiasi cella nel percorso (percorso escluso Marlin o nemo) non può essere adiacente a più di altre due celle nel percorso.
- Il percorso non dovrebbe attraversare le tessere
marlinonemo, poiché confonderebbe i pesciolini nella scelta di una direzione. - Come al solito, è possibile scrivere un programma o una funzione, prendendo input tramite STDIN (o equivalente più vicino), argomento della riga di comando o parametro di funzione e producendo output tramite STDOUT (o equivalente più vicino), valore di ritorno o parametro di funzione (out).
- Se non è possibile immettere più righe, è possibile supporre che la griglia sia unita dal
|carattere anziché\n. Puoi anche prendere l'input come una matrice di righe della griglia.
Questo è il golf del codice, quindi vince la voce più breve in byte.
kprecedentelin marlin? (facendo il percorso da n in marlin a nemo)