O nie! Nemo, nasza mała ryba klauna zaginęła w tym oceanie ASCII, a jego tata Marlin próbuje go znaleźć.
Twoim zadaniem jest bezpieczne doprowadzenie Marlina do Nemo. Ale uwaga, mamy na wolności szalonego Bruce'a, więc lepiej go unikać za wszelką cenę!
Detale
Otrzymujesz prostokątną siatkę oceaniczną ASCII zawierającą tylko małe litery a-z
. Ten ocean będzie miał nemo
, marlin
a bruce
wewnątrz niego w postaci ciągłego poliomino, zawsze zaczynając od najwyższej komórki w pierwszej kolumnie poliomino. Na przykład spośród wszystkich możliwych tetrominów prawidłowe są wymienione w poniższym fragmencie
Ale takie formularze są nieprawidłowe i nie będą obecne w danych wejściowych:
omen
ne
mo
nem
o
o
m
en
nem
o
n
eo
m
Wreszcie, Twoim zadaniem jest znalezienie ścieżki od marlin
płytki poliomino do płytki nemo
poliomino, upewniając się, że żadna komórka na Twojej ścieżce nie sąsiaduje z bruce
płytką poliomino. Twój wynik powinien zastąpić wszystkie alfabety, które nie są częścią marlin
kafelka, nemo
kafelka i ścieżki łączącej oba znaki znakiem z drukowanego zakresu ASCII (w tym spacją) innym niż małe litery a-z
.
Przykład
Jeśli ocean wejściowy jest następujący:
oxknvvolacycxg
xmliuzsxpdzkpw
warukpyhcldlgu
tucpzymenmoyhk
qnvtbsalyfrlyn
cicjrucejhiaeb
bzqfnfwqtrzqbp
ywvjanjdtzcoyh
xsjeyemojwtyhi
mcefvugvqabqtt
oihfadeihvzakk
pjuicqduvnwscv
(przy czym 3 poliaminy to:
...n..........
.mli..........
.ar...........
..............
....b.........
....ruce......
..............
.....n........
.....emo......
..............
..............
..............
)
W takim przypadku prawidłowe rozwiązanie może wyglądać następująco:
...n..........
.mli..........
.ar...........
.u............
.n............
.i............
.z............
.wvjan........
.....emo......
..............
..............
..............
Poniżej fragment zawiera kilka innych przykładów:
Notatki
- Siatka zawsze będzie idealny prostokąt i będzie zawierać tylko jeden Polyomino płytki z
nemo
,marlin
ibruce
. - Twoja ścieżka nie powinna przechodzić przez
bruce
żadną z 4 sąsiadujących (w górę, w dół, w lewo i w prawo) komórek żadnej komórki nabruce
kafelku. - Zawsze gwarantuje się, że będzie co najmniej jedna poprawna ścieżka od
marlin
donemo
. - Nie ma tu wymogu najkrótszej ścieżki, więc zwariuj!
- Nawet jeśli nie musisz znajdować najkrótszej ścieżki, żadna komórka na ścieżce (ścieżka nie włączając marlina ani nemo) nie może przylegać do więcej niż dwóch innych komórek na ścieżce.
- Ścieżka nie powinna przechodzić przez kafelki
marlin
lubnemo
, ponieważ wówczas mylą małe ryby przy wyborze kierunku. - Jak zwykle, możesz napisać program lub funkcję, pobierając dane wejściowe przez STDIN (lub najbliższy odpowiednik), argument wiersza poleceń lub parametr funkcji i generując dane wyjściowe przez STDOUT (lub najbliższy odpowiednik), zwracaną wartość lub parametr funkcji (wyjściowej).
- Jeśli wprowadzanie wielu wierszy nie jest możliwe, możesz założyć, że do siatki dołącza
|
znak zamiast\n
. Możesz również wziąć dane wejściowe jako tablicę wierszy siatki.
To jest kod golfowy, więc wygrywa najkrótszy wpis w bajtach.
k
powyższyl
marlin? (droga od