ไม่นะ! นีโมปลาตัวตลกของเราหายไปในมหาสมุทร ASCII และพ่อของเขามาร์ลินกำลังพยายามตามหาเขา
งานของคุณคือนำ Marlin ไป Nemo อย่างปลอดภัย แต่ระวังเรามีบรูซบ้าคลั่งให้อาหารที่หลวมดังนั้นหลีกเลี่ยงเขาได้ดีกว่า!
รายละเอียด
คุณจะได้รับตาราง ASCII a-z
ทะเลเป็นรูปสี่เหลี่ยมผืนผ้าที่มีตัวอักษรตัวพิมพ์เล็กเท่านั้น ทะเลแห่งนี้จะมีnemo
, marlin
และbruce
ภายในนั้นในรูปแบบของ polyomino อย่างต่อเนื่องเสมอเริ่มต้นจากด้านบนมือถือมากที่สุดในคอลัมน์แรกของ polyomino ตัวอย่างเช่นจาก tetrominos ที่เป็นไปได้ทั้งหมดรายการที่ถูกต้องจะแสดงรายการในตัวอย่างด้านล่าง
แต่แบบฟอร์มเหล่านี้ไม่ถูกต้องและจะไม่ปรากฏในอินพุต:
omen
ne
mo
nem
o
o
m
en
nem
o
n
eo
m
ในที่สุดงานของคุณคือการหาเส้นทางจากmarlin
แผ่นกระเบื้อง polyomino ไปยังแผ่นกระเบื้อง polyomino เพื่อnemo
ให้แน่ใจว่าเซลล์ใด ๆ ในเส้นทางของคุณไม่ได้อยู่ติดกับbruce
แผ่นกระเบื้อง polyomino ส่งออกของคุณควรเปลี่ยนทุกตัวอักษรที่ไม่ได้เป็นส่วนหนึ่งของmarlin
กระเบื้องnemo
กระเบื้องและเส้นทางเชื่อมต่อพวกเขาทั้งที่มีตัวละครจากช่วง ASCII พิมพ์ (รวมทั้งพื้นที่) a-z
ที่นอกเหนือจากตัวพิมพ์เล็ก
ตัวอย่าง
หากมหาสมุทรอินพุตเป็นดังต่อไปนี้:
oxknvvolacycxg
xmliuzsxpdzkpw
warukpyhcldlgu
tucpzymenmoyhk
qnvtbsalyfrlyn
cicjrucejhiaeb
bzqfnfwqtrzqbp
ywvjanjdtzcoyh
xsjeyemojwtyhi
mcefvugvqabqtt
oihfadeihvzakk
pjuicqduvnwscv
(โดยมี 3 polyominos เป็น:
...n..........
.mli..........
.ar...........
..............
....b.........
....ruce......
..............
.....n........
.....emo......
..............
..............
..............
)
จากนั้นโซลูชันที่ถูกต้องอาจมีลักษณะดังนี้:
...n..........
.mli..........
.ar...........
.u............
.n............
.i............
.z............
.wvjan........
.....emo......
..............
..............
..............
ตัวอย่างด้านล่างมีตัวอย่างอีกสองสามตัวอย่าง:
หมายเหตุ
- ตารางจะเป็นรูปสี่เหลี่ยมผืนผ้าที่สมบูรณ์แบบและจะมีเพียงกระเบื้อง polyomino หนึ่ง
nemo
, และmarlin
bruce
- เส้นทางของคุณไม่ควรผ่าน
bruce
หรือใด ๆ ของเซลล์ 4 เซลล์ที่ติดกัน (ขึ้นลงซ้ายและขวา) ของเซลล์ใด ๆ ในbruce
แผ่นกระเบื้อง - จะรับประกันเสมอว่าจะมีอย่างน้อยหนึ่งเส้นทางที่ถูกต้องจากไป
marlin
nemo
- ไม่มีความต้องการของเส้นทางที่สั้นที่สุดที่นี่เพื่อไปถั่ว!
- แม้ว่าคุณไม่จำเป็นต้องค้นหาเส้นทางที่สั้นที่สุดเซลล์ใด ๆ ในเส้นทาง (เส้นทางที่ไม่รวมมาร์ลินหรือนีโม) ไม่สามารถอยู่ติดกับเซลล์อื่นมากกว่าสองเซลล์ในเส้นทาง
- เส้นทางไม่ควรผ่าน
marlin
หรือnemo
เรียงต่อกันเนื่องจากจะทำให้ปลาตัวเล็กสับสนในการเลือกทิศทาง - ตามปกติคุณอาจเขียนโปรแกรมหรือฟังก์ชั่นรับอินพุตผ่าน STDIN (หรือเทียบเท่าที่ใกล้เคียงที่สุด) อาร์กิวเมนต์บรรทัดคำสั่งหรือพารามิเตอร์ฟังก์ชันและสร้างเอาต์พุตผ่าน STDOUT (หรือเทียบเท่าที่ใกล้เคียงที่สุด), ส่งคืนค่าหรือฟังก์ชัน
- ถ้าใส่หลายคู่สายเป็นไปไม่ได้แล้วคุณอาจคิดว่าตารางจะเข้าร่วมโดยตัวละครแทน
|
\n
คุณอาจใช้อินพุตเป็นอาร์เรย์ของแถวกริด
นี่คือรหัสกอล์ฟเพื่อให้รายการที่สั้นที่สุดเป็นไบต์ชนะ
k
ข้างต้นl
มาร์ลินสามารถมองเห็นได้? (ทำให้เส้นทางจาก n ใน marlin ไปยัง nemo)