Ôi không! Nemo, con cá hề nhỏ của chúng ta bị lạc trong đại dương ASCII này và cha Marlin đang cố gắng tìm anh ta.
Nhiệm vụ của bạn là đưa Marlin đến Nemo một cách an toàn. Nhưng hãy cẩn thận, chúng tôi có một Bruce điên cuồng cho ăn, vì vậy tốt hơn nên tránh anh ta bằng mọi giá!
Chi tiết
Bạn được cung cấp một lưới đại dương ASCII hình chữ nhật chỉ chứa các bảng chữ cái chữ thường a-z
. Đại dương này sẽ có nemo
, marlin
và bruce
bên trong nó dưới dạng một polyomino liên tục, luôn bắt đầu từ tế bào hàng đầu trong cột đầu tiên của polyomino. Vì vậy, ví dụ, trong số tất cả các tetrominos có thể, những cái hợp lệ được liệt kê trong đoạn trích dưới đây
Nhưng các hình thức như thế này là không hợp lệ và sẽ không có mặt trong đầu vào:
omen
ne
mo
nem
o
o
m
en
nem
o
n
eo
m
Cuối cùng, nhiệm vụ của bạn là tìm một đường dẫn từ ô marlin
polyomino đến ô nemo
polyomino để đảm bảo rằng bất kỳ ô nào trong đường dẫn của bạn không liền kề với ô bruce
polyomino. Đầu ra của bạn nên thay thế tất cả các bảng chữ cái không phải là một phần của marlin
ô, nemo
lát và đường dẫn kết nối cả hai với một ký tự từ phạm vi ASCII có thể in (bao gồm cả khoảng trắng) ngoài chữ thường a-z
.
Thí dụ
Nếu đại dương đầu vào như sau:
oxknvvolacycxg
xmliuzsxpdzkpw
warukpyhcldlgu
tucpzymenmoyhk
qnvtbsalyfrlyn
cicjrucejhiaeb
bzqfnfwqtrzqbp
ywvjanjdtzcoyh
xsjeyemojwtyhi
mcefvugvqabqtt
oihfadeihvzakk
pjuicqduvnwscv
(với 3 polyominos là:
...n..........
.mli..........
.ar...........
..............
....b.........
....ruce......
..............
.....n........
.....emo......
..............
..............
..............
)
Sau đó, một giải pháp hợp lệ có thể trông giống như:
...n..........
.mli..........
.ar...........
.u............
.n............
.i............
.z............
.wvjan........
.....emo......
..............
..............
..............
Đoạn trích bên dưới có thêm một vài ví dụ:
Ghi chú
- Lưới điện sẽ luôn luôn là một hình chữ nhật hoàn hảo và sẽ chứa chỉ có một gạch polyomino của
nemo
,marlin
vàbruce
. - Đường dẫn của bạn không được đi qua
bruce
hoặc bất kỳ ô nào trong 4 ô liền kề (lên, xuống, trái và phải) của bất kỳ ô nào trongbruce
ô. - Nó luôn được đảm bảo rằng sẽ có ít nhất một đường dẫn hợp lệ từ
marlin
đếnnemo
. - Không có yêu cầu về một con đường ngắn nhất ở đây, vì vậy hãy đi!
- Mặc dù bạn không phải tìm đường đi ngắn nhất, bất kỳ ô nào trong đường dẫn (đường dẫn không bao gồm marlin hoặc nemo) không thể liền kề với hơn hai ô khác trong đường dẫn.
- Con đường không nên đi qua
marlin
hoặcnemo
gạch, vì nó sẽ khiến những con cá nhỏ bối rối trong việc chọn hướng. - Như thường lệ, bạn có thể viết chương trình hoặc hàm, lấy đầu vào qua STDIN (hoặc tương đương gần nhất), tham số dòng lệnh hoặc tham số hàm và tạo đầu ra thông qua STDOUT (hoặc tương đương gần nhất), giá trị trả về hoặc tham số hàm (out).
- Nếu đầu vào nhiều dòng là không thể, thì bạn có thể giả sử rằng lưới được nối bởi
|
ký tự thay vì\n
. Bạn cũng có thể lấy đầu vào là một mảng của các hàng lưới.
Đây là mã golf, vì vậy, mục nhập ngắn nhất trong byte sẽ thắng.
k
so vớil
trong marlin thể nhìn thấy? (thực hiện đường dẫn từ n trong marlin đến nemo)