Ah não! Nemo, nosso pequeno peixe-palhaço está perdido neste oceano ASCII e seu pai Marlin está tentando encontrá-lo.
Sua tarefa é levar Marlin a Nemo com segurança. Mas cuidado, temos um frenesi de Bruce à solta, então é melhor evitá-lo a todo custo!
Detalhes
Você recebe uma grade oceânica ASCII retangular contendo apenas alfabetos em minúsculas a-z
. Este oceano terá nemo
, marlin
e bruce
dentro dele, na forma de um poliomaino contínuo, sempre começando da célula superior na primeira coluna do poliomaino. Assim, por exemplo, de todos os tetrominos possíveis, os válidos estão listados no trecho abaixo
Mas formulários como estes são inválidos e não estarão presentes na entrada:
omen
ne
mo
nem
o
o
m
en
nem
o
n
eo
m
Por fim, sua tarefa é encontrar um caminho do marlin
bloco de poliomino para o nemo
bloco de poliomino, certificando-se de que qualquer célula em seu caminho não seja adjacente ao bruce
bloco de poliomino. Sua saída deve substituir todos os alfabetos que não fazem parte do marlin
bloco, nemo
bloco e o caminho que os conecta com um caractere do intervalo ASCII imprimível (incluindo espaço) que não seja minúsculo a-z
.
Exemplo
Se o oceano de entrada for o seguinte:
oxknvvolacycxg
xmliuzsxpdzkpw
warukpyhcldlgu
tucpzymenmoyhk
qnvtbsalyfrlyn
cicjrucejhiaeb
bzqfnfwqtrzqbp
ywvjanjdtzcoyh
xsjeyemojwtyhi
mcefvugvqabqtt
oihfadeihvzakk
pjuicqduvnwscv
(com os 3 poliomanos sendo:
...n..........
.mli..........
.ar...........
..............
....b.........
....ruce......
..............
.....n........
.....emo......
..............
..............
..............
)
Em seguida, uma solução válida pode se parecer com:
...n..........
.mli..........
.ar...........
.u............
.n............
.i............
.z............
.wvjan........
.....emo......
..............
..............
..............
O snippet abaixo contém mais alguns exemplos:
Notas
- A grade sempre será um retângulo perfeito e conterá apenas um bloco de poliomino de
nemo
,marlin
ebruce
. - Seu caminho não deve passar por
bruce
nenhuma das quatro células adjacentes (para cima, para baixo, esquerda e direita) de nenhuma célula dobruce
bloco. - É sempre garantido que haverá pelo menos um caminho válido de
marlin
paranemo
. - Não há necessidade de um caminho mais curto aqui, então enlouqueça!
- Mesmo que você não precise encontrar o caminho mais curto, qualquer célula do caminho (caminho que não inclua marlin ou nemo) não pode ser adjacente a mais de duas outras células no caminho.
- O caminho não deve passar pelos
marlin
ounemo
azulejos, pois confundiria os peixinhos na escolha de uma direção. - Como de costume, você pode escrever um programa ou função, recebendo entrada via STDIN (ou equivalente mais próximo), argumento da linha de comando ou parâmetro de função e produzindo saída via STDOUT (ou equivalente mais próximo), valor de retorno ou parâmetro de função (saída).
- Se a entrada de várias linhas não for possível, você poderá assumir que a grade é unida pelo
|
caractere em vez de\n
. Você também pode receber a entrada como uma matriz de linhas da grade.
Este é o código golf, pelo que ganha a menor entrada em bytes.
k
acima dol
marlin fosse visível? (fazendo com que o caminho desde o terminal N em Marlin para nemo)