¡Oh no! Nemo, nuestro pequeño pez payaso se pierde en este océano ASCII y su padre Marlin está tratando de encontrarlo.
Su tarea es llevar a Marlin a Nemo con seguridad. Pero cuidado, tenemos un frenesí de alimentación Bruce suelto, ¡así que mejor evítalo a toda costa!
Detalles
Se le proporciona una cuadrícula oceánica rectangular ASCII que contiene solo alfabetos en minúsculas a-z. Este océano tendrá nemo, marliny brucedentro de él, en forma de un poliomino continuo, siempre comenzando desde la celda más alta en la primera columna de poliomino. Entonces, por ejemplo, de todos los tetrominos posibles, los válidos se enumeran en el fragmento a continuación
Pero formas como estas no son válidas y no estarán presentes en la entrada:
omen
ne
mo
nem
o
o
m
en
nem
o
n
eo
m
Finalmente, su tarea es encontrar una ruta desde el marlinmosaico poliomino al mosaico nemopoliomino asegurándose de que ninguna celda en su ruta no sea adyacente al brucemosaico poliomino. Su salida debe reemplazar todos los alfabetos que no son parte del marlinmosaico, el nemomosaico y la ruta que los conecta a ambos con un carácter del rango ASCII imprimible (incluido el espacio) que no sea minúscula a-z.
Ejemplo
Si el océano de entrada es el siguiente:
oxknvvolacycxg
xmliuzsxpdzkpw
warukpyhcldlgu
tucpzymenmoyhk
qnvtbsalyfrlyn
cicjrucejhiaeb
bzqfnfwqtrzqbp
ywvjanjdtzcoyh
xsjeyemojwtyhi
mcefvugvqabqtt
oihfadeihvzakk
pjuicqduvnwscv
(siendo los 3 poliominos:
...n..........
.mli..........
.ar...........
..............
....b.........
....ruce......
..............
.....n........
.....emo......
..............
..............
..............
)
Entonces una solución válida puede verse así:
...n..........
.mli..........
.ar...........
.u............
.n............
.i............
.z............
.wvjan........
.....emo......
..............
..............
..............
El siguiente fragmento contiene algunos ejemplos más:
Notas
- La cuadrícula siempre será un rectángulo perfecto y contendrá solo un mosaico poliomino de
nemo,marlinybruce. - Su ruta no debe atravesar
bruceni ninguna de las 4 celdas adyacentes (arriba, abajo, izquierda y derecha) de ninguna celda en elbrucemosaico. - Siempre se garantiza que habrá al menos una ruta válida desde
marlinhastanemo. - No hay requisito de un camino más corto aquí, ¡así que enloquece!
- Aunque no tiene que encontrar la ruta más corta, ninguna celda en la ruta (ruta que no incluye marlin o nemo) no puede estar adyacente a más de otras dos células en la ruta.
- El camino no debe atravesar las baldosas
marlinonemo, ya que confundiría a los pequeños peces al elegir una dirección. - Como de costumbre, puede escribir un programa o función, tomando la entrada a través de STDIN (o equivalente más cercano), argumento de línea de comando o parámetro de función, y produciendo salida a través de STDOUT (o equivalente más cercano), valor de retorno o parámetro de función (out).
- Si no es posible la entrada de varias líneas, puede suponer que la cuadrícula está unida por el
|carácter en lugar de\n. También puede tomar la entrada como una matriz de filas de cuadrícula.
Este es el código de golf, por lo que gana la entrada más corta en bytes.
kanteriorlen marlin fuera visible? (haciendo el camino de la n en marlin a nemo)