Oh non! Nemo, notre petit poisson clown est perdu dans cet océan ASCII et son père Marlin essaie de le retrouver.
Votre tâche consiste à amener Marlin à Nemo en toute sécurité. Mais attention, nous avons une frénésie d'alimentation Bruce en liberté, alors mieux vaut l'éviter à tout prix!
Détails
Vous obtenez une grille océanique ASCII rectangulaire contenant uniquement des alphabets en minuscules a-z
. Cet océan aura nemo
, marlin
et à l' bruce
intérieur sous la forme d'un polyomino continu, toujours à partir de la cellule la plus haute de la première colonne de polyomino. Ainsi, par exemple, parmi tous les tétrominos possibles, ceux valides sont répertoriés dans l'extrait ci-dessous
Mais des formulaires comme ceux-ci ne sont pas valides et ne seront pas présents dans l'entrée:
omen
ne
mo
nem
o
o
m
en
nem
o
n
eo
m
Enfin, votre tâche consiste à trouver un chemin entre la marlin
tuile polyomino et la nemo
tuile polyomino en vous assurant qu'aucune cellule de votre chemin n'est adjacente à la bruce
tuile polyomino. Votre sortie doit remplacer tous les alphabets qui ne font pas partie de la marlin
tuile, de la nemo
tuile et du chemin les reliant tous les deux par un caractère de la plage ASCII imprimable (y compris l'espace) autre que les minuscules a-z
.
Exemple
Si l'océan d'entrée est le suivant:
oxknvvolacycxg
xmliuzsxpdzkpw
warukpyhcldlgu
tucpzymenmoyhk
qnvtbsalyfrlyn
cicjrucejhiaeb
bzqfnfwqtrzqbp
ywvjanjdtzcoyh
xsjeyemojwtyhi
mcefvugvqabqtt
oihfadeihvzakk
pjuicqduvnwscv
(les 3 polyominos étant:
...n..........
.mli..........
.ar...........
..............
....b.........
....ruce......
..............
.....n........
.....emo......
..............
..............
..............
)
Une solution valide peut alors ressembler à:
...n..........
.mli..........
.ar...........
.u............
.n............
.i............
.z............
.wvjan........
.....emo......
..............
..............
..............
L'extrait ci-dessous contient quelques autres exemples:
Remarques
- La grille sera toujours un rectangle parfait et ne contiendra qu'une seule tuile polyomino de
nemo
,marlin
etbruce
. - Votre chemin ne doit pas traverser
bruce
ou l'une des 4 cellules adjacentes (haut, bas, gauche et droite) d'une cellule de labruce
tuile. - Il est toujours garanti qu'il y aura au moins un chemin valide de
marlin
ànemo
. - Il n'y a aucune exigence de chemin le plus court ici, alors allez-y!
- Même si vous n'avez pas besoin de trouver le chemin le plus court, aucune cellule du chemin (chemin n'incluant pas le marlin ou le nemo) ne peut être adjacente à plus de deux autres cellules du chemin.
- Le chemin ne doit pas passer par le
marlin
ou lesnemo
tuiles, car cela dérouterait alors les petits poissons dans le choix d'une direction. - Comme d'habitude, vous pouvez écrire un programme ou une fonction, en prenant une entrée via STDIN (ou son équivalent le plus proche), un argument de ligne de commande ou un paramètre de fonction, et en produisant une sortie via STDOUT (ou son équivalent le plus proche), une valeur de retour ou un paramètre de fonction (out).
- Si la saisie sur plusieurs lignes n'est pas possible, vous pouvez supposer que la grille est jointe par le
|
caractère au lieu de\n
. Vous pouvez également prendre l'entrée comme un tableau de lignes de grille.
Il s'agit du code golf, donc l'entrée la plus courte en octets l'emporte.
k
précède lel
marlin était visible? (faisant le chemin du n à marlin vers nemo)