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, marline brucedentro 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 marlinbloco de poliomino para o nemobloco de poliomino, certificando-se de que qualquer célula em seu caminho não seja adjacente ao brucebloco de poliomino. Sua saída deve substituir todos os alfabetos que não fazem parte do marlinbloco, nemobloco 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,marlinebruce. - Seu caminho não deve passar por
brucenenhuma das quatro células adjacentes (para cima, para baixo, esquerda e direita) de nenhuma célula dobrucebloco. - É sempre garantido que haverá pelo menos um caminho válido de
marlinparanemo. - 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
marlinounemoazulejos, 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.
kacima dolmarlin fosse visível? (fazendo com que o caminho desde o terminal N em Marlin para nemo)