¡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
, marlin
y bruce
dentro 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 marlin
mosaico poliomino al mosaico nemo
poliomino asegurándose de que ninguna celda en su ruta no sea adyacente al bruce
mosaico poliomino. Su salida debe reemplazar todos los alfabetos que no son parte del marlin
mosaico, el nemo
mosaico 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
,marlin
ybruce
. - Su ruta no debe atravesar
bruce
ni ninguna de las 4 celdas adyacentes (arriba, abajo, izquierda y derecha) de ninguna celda en elbruce
mosaico. - Siempre se garantiza que habrá al menos una ruta válida desde
marlin
hastanemo
. - 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
marlin
onemo
, 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.
k
anteriorl
en marlin fuera visible? (haciendo el camino de la n en marlin a nemo)