ความท้าทาย
รหัสที่สั้นที่สุดตามจำนวนตัวอักษรเพื่อช่วยให้ Robot ค้นหาลูกแมวในขั้นตอนที่น้อยที่สุดเท่าที่จะทำได้
นักกอล์ฟนี่เป็นช่วงเวลาของวิกฤต - ลูกแมวหายไปและมันเป็นงานของหุ่นยนต์ที่จะหามัน! หุ่นยนต์ต้องไปถึงลูกแมวในเส้นทางที่สั้นที่สุด อย่างไรก็ตามมีอุปสรรคมากมายในทางของหุ่นยนต์และเขาต้องการให้คุณเขียนโปรแกรมสำหรับเขา
หุ่นยนต์เคยมีโปรแกรมทำเพื่อเขา แต่โปรแกรมนั้นหายไปและหุ่นยนต์ไม่มีการสำรองข้อมูล :(
รันไทม์ของหุ่นยนต์ไม่ดีที่สุดและตัวละครน้อยที่สุดที่หุ่นยนต์ต้องอ่านจากซอร์สโค้ดเวลาที่ใช้ในการประมวลผลน้อยที่สุดนั่นหมายความว่าลูกแมวจะพบได้เร็วขึ้น!
หน่วยความจำของหุ่นยนต์มีแผนที่ของตำแหน่งที่เขาอยู่ในขณะนี้ด้วยด้านบนเป็นตัวแทนเหนือ, ด้านล่างเป็นตัวแทนใต้ขวาเป็นตัวแทนตะวันออกและซ้ายเป็นตัวแทนตะวันตก หุ่นยนต์มักจะอยู่ในห้องสี่เหลี่ยมที่มีขนาดที่ไม่รู้จักล้อมรอบด้วยกำแพงแสดง#
ในแผนที่เรดาร์ของเขา หุ่นยนต์พื้นที่สามารถเดินในเป็นตัวแทนจากพื้นที่
เรดาร์ของหุ่นยนต์สแกนหาสิ่งกีดขวางมากมายในห้องและทำเครื่องหมายด้วยตัวอักษร ASCII ต่างๆ หุ่นยนต์ไม่สามารถเดินข้ามสิ่งกีดขวางเหล่านั้นได้ เรดาร์จะทำเครื่องหมายลูกแมวเป็นอักขระ ASCII พิเศษในขณะที่สถานที่ตั้งของหุ่นยนต์จะมีเครื่องหมายK
R
ระบบนำทางของหุ่นยนต์ทำงานในลักษณะนี้: เขาสามารถเข้าใจคู่ของทิศทางและจำนวนหน่วยการเคลื่อนไหวที่เขาควรเดินทางไป - เช่นN 3
หมายถึง 'ไปทางเหนือ 3 หน่วยการเคลื่อนไหว' แผนที่เรดาร์ของหุ่นยนต์ถูกสร้างขึ้นเพื่อให้หน่วยการเคลื่อนไหวเป็นหนึ่งตัวอักษร ASCII หุ่นยนต์สามารถไปได้ 4 ทิศทางและไม่สามารถเคลื่อนที่ในแนวทแยงมุมได้
ภารกิจของคุณคือ Kitten saver ที่กล้าหาญคืออ่านแผนที่เรดาร์ของ Robot หนึ่งครั้งและออกทิศทางในจำนวนที่น้อยที่สุดด้วยระยะทางที่เคลื่อนที่ได้น้อยที่สุด หุ่นยนต์รับประกันว่าจะมีเส้นทางไปสู่ Kitten อย่างน้อยหนึ่งเส้นทาง
เพื่อให้แน่ใจว่า Robot ไม่ต้องเสียเวลาในการรันโปรแกรมที่ชำรุดซึ่งจะไม่ช่วยให้ Robot ค้นหา Kitten ฉันขอแนะนำให้คุณประหยัด Kitten ที่กล้าหาญเพื่อใช้ผลลัพธ์ของโปรแกรมที่ผ่านมาของ Robot เพื่อให้แน่ใจว่าไม่มีเวลาเสียเปล่าในการค้นหา Kitten!
กรณีทดสอบ
Input:
######################
# d 3 Kj #
# #
# R #
# q #
######################
Output:
E 13
N 2
Input:
######################
# d r 3 Kj #
# p p #
# T X #
# q s t #
# #
# R o d W #
# #
# g t U #
# #
######################
Output:
N 1
E 10
N 4
E 2
Input:
######################
# spdfmsdlwe9mw WEK3#
# we hi #
# rdf fsszr#
# sdfg gjkti #
# fc d g i #
# dfg sdd #
# g zfg #
# df df #
# xcf R#
######################
Output:
N 1
W 9
N 5
E 4
N 1
E 4
N 1
การนับรหัสประกอบด้วยอินพุต / เอาต์พุต (เช่นโปรแกรมเต็มรูปแบบ)