คุณเป็นหนู เพื่อนของคุณถูกจับและหมดสติและถูกขังอยู่ในเขาวงกตที่มีทางเข้า / ทางออกเดียวเท่านั้น คุณมีแผนที่ที่สมบูรณ์แบบของเขาวงกตดังนั้นคุณจึงสามารถวางแผนการแก้ปัญหาเพื่อเร่งรีบและพาพวกมันทั้งหมดไปสู่ความปลอดภัย อย่างไรก็ตามเขาวงกตได้รับการปกป้องด้วยระบบรักษาความปลอดภัยที่จะเปิดการแจ้งเตือนหากถึงเกณฑ์1000
ทำให้คุณถูกจับและล้มเหลวในภารกิจกู้ภัยของคุณ
จากการตรวจสอบก่อนหน้าของเขาวงกตของคุณแต่ละตารางคุณก้าว (เช่นการเคลื่อนไหวในแนวนอนหรือแนวตั้ง - หนูไม่สามารถเคลื่อนที่ในแนวทแยงมุม ) เพิ่ม1
ไปยังเคาน์เตอร์ของระบบรักษาความปลอดภัย อย่างไรก็ตามหากคุณกำลังแบกน้ำหนัก (ทั้งบล็อกของไดนาไมต์หรือเพื่อนของเมาส์ที่ไม่รู้สึกตัว) มันเพิ่มแทน2
เพราะมันตรวจจับแรงกดดันเพิ่มเติม จัตุรัสทางเข้า / ทางออกไม่มีระบบรักษาความปลอดภัยนี้ดังนั้นจึงไม่เพิ่มลงในตัวนับ
คุณมีไดนาไมต์จำนวนไม่ จำกัด ที่คุณนำมาที่ทางเข้าดังนั้นคุณสามารถระเบิดกำแพงทั้งหมดเพื่อปลดปล่อยเพื่อนของคุณ แต่คุณต้องระมัดระวังในการทำเช่นนี้เนื่องจากการระเบิดแต่ละครั้งจะเพิ่ม50
ความกดดันจากการสั่นสะเทือน นอกจากนี้คุณสามารถพกพาได้ครั้งละหนึ่งอย่างเท่านั้นไม่ว่าจะเป็นหนึ่งเม้าส์หรือหนึ่งบล็อกไดนาไมต์ เนื่องจากบล็อกไดนาไมต์แต่ละอันสามารถทำให้เกิดการระเบิดได้เพียงพื้นที่เดียวเท่านั้นซึ่งหมายความว่าหากมีหลายกำแพงติดต่อกันคุณจะต้องเดินทางด้วยมือเปล่ากลับไปที่ทางเข้าเพื่อคว้ามากขึ้น
ตัวอย่างการทำงานผ่าน
สมมติว่าเขาวงกตของเรามีลักษณะดังนี้:
######
#M# E#
######
ฉันจะใช้c
สำหรับเคาน์เตอร์ เราเริ่มต้นที่E
ntrance เลื่อนไปทางซ้ายหนึ่งตารางขณะถือไดนาไมต์c=2
. เราระเบิดวัตถุระเบิดเพื่อระเบิดกำแพง, c=52
. เราเลื่อนสี่เหลี่ยมสองช่องไปทางซ้ายมือเปล่าเพื่อรับc=54
และตอนนี้เรากำลังยืนอยู่บนสี่เหลี่ยมของเมาส์ เราหยิบเพื่อนของเราขึ้นมาแล้วขยับ 3 สี่เหลี่ยมกลับไปที่E
xit แต่จตุรัสสุดท้ายไม่นับเพราะไม่มีเซ็นเซอร์เลยนั่นเป็นเพียง 2 สี่เหลี่ยมที่มีบางอย่างอยู่ด้านหลังของเรา นั่นหมายความว่าเมื่อเราไปถึงทางออกด้วยเมาส์สุดท้ายc=58
ซึ่งน้อยกว่า1000
ดังนั้นภารกิจจึงสำเร็จ
ท้าทาย
ด้วยการป้อนข้อมูลในเขาวงกตเอาท์พุทไม่ว่าคุณจะเป็นฮีโร่ของเมาส์สามารถช่วยเหลือหนูที่ติดกับดักทั้งหมดภายใต้ข้อ จำกัด ที่ระบุไว้ข้างต้นหรือว่าภารกิจนั้นล้มเหลว
อินพุต
- เขาวงกต 2 มิติในทุกรูปแบบที่ยอมรับได้ (สตริงหลายแถว, อาร์เรย์ของสตริง ฯลฯ )
- สำหรับความท้าทายนี้ฉันจะใช้
#
ทั้งผนังภายในและภายนอกM
สำหรับเพื่อนเมาส์และE
ทางเข้า - ทางเข้าจะไม่ติดกับผนังภายในทันที (จะต้องมีที่ว่างอย่างน้อยหนึ่งช่องที่สามารถเคลื่อนที่ได้อย่างอิสระ)
- คุณสามารถแทนที่อักขระ ASCII ที่พิมพ์ได้ที่คุณต้องการตราบใดที่มันสอดคล้องกัน นี้ไม่ยอมให้คุณใช้สองสัญลักษณ์ที่แตกต่างกันสำหรับผนังภายในกับผนังด้านนอก, ตราบใดที่คุณรักษาความมั่นคง (เช่นถ้าคุณเลือกที่จะใช้
@
สำหรับผนังภายในแทนและลา#
สำหรับภายนอกทุกผนังภายในต้อง@
และทุกผนังด้านนอก#
) - เขาวงกตจะถูกล้อมรอบด้วยกำแพงเสมอ แต่ไม่จำเป็นต้องเป็นรูปสี่เหลี่ยมผืนผ้า หากต้องการคุณสามารถสันนิษฐานได้ว่าเขาวงกตนั้นมีเบาะที่มีช่องว่างในการทำอินพุตสี่เหลี่ยม (อุปกรณ์เสริม)
- เขาวงกตอาจมีส่วนที่ไม่สามารถเข้าถึงได้โดยไม่มีวัตถุระเบิด
- คุณไม่สามารถระเบิดกำแพงด้านนอกของเขาวงกตได้
เอาท์พุต
truthy / falseyค่า ความจริงสำหรับ "ใช่หนูสามารถช่วยเหลือหนูตัวอื่น ๆ ทุกตัว" หรือ Falsey สำหรับ "ไม่ระบบเตือนภัยจะถูกสะดุด"
กฎระเบียบ
- ยอมรับได้ทั้งโปรแกรมหรือฟังก์ชั่น
- ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม
- นี่คือรหัส - กอล์ฟเพื่อให้ใช้กฎการเล่นกอล์ฟตามปกติทั้งหมดและรหัสที่สั้นที่สุด (เป็นไบต์) ชนะ
ตัวอย่าง
ตัวอย่างความจริงคั่นด้วยบรรทัดว่าง
#####
#M E#
#####
######
#M# E#
######
########
#E # M#
# # #
# # #
# #
########
#############################
# ## # # #
# M ## M # # #
# ## # M # E #
#M ## # # #
#############################
###############
#MMMMMMMMMMMMM#
#MMMMMMMMMMMMM#
#MMMMMMMMMMMMM#
#MMMMMMMMMM MM#
#MMMMMMMMMMMME#
###############
ตัวอย่าง Falsey คั่นด้วยบรรทัดว่าง
#############################
#M ## ## ## #
# M ## M ## ## #
# ## ## M ## E #
#M ## ## ## #
#############################
#############################
########
########
# # #
# M # M#
########
#####
# M #
#####
#####
#####
#####
###################
# # # ## ## # # #
#M#M#M## E ##M#M#M#
# # # ## ## # # #
###################
#######
######
#####
####
# M#
####
###############
#MMMMMMMMMMMMM#
#MMMMMMMMMMMMM#
#MMMMMMMMMMMMM#
#MMMMMMMMMMMMM#
#MMMMMMMMMMMME#
###############