3
การแข่งขันกอล์ฟน้ำแข็ง
เป้าหมายของการท้าทายนี้คือการเขียนโปรแกรมหรือฟังก์ชั่นที่คืนค่าจำนวนนัดน้อยที่สุดที่จำเป็นในการจบหลักสูตร อินพุต เลย์เอาต์ของหลักสูตรสามารถส่งผ่านในรูปแบบและรูปแบบที่คุณต้องการ (อ่านจากคอนโซลผ่านเป็นพารามิเตอร์อินพุตอ่านจากไฟล์หรืออื่น ๆ หลายบรรทัดสตริงสตริงอาร์เรย์อักขระสองมิติ / อาร์เรย์ไบต์) ตำแหน่งเริ่มต้นของลูกบอลและหลุมสามารถส่งผ่านเป็นอินพุตได้เช่นกันโดยไม่จำเป็นต้องแยกวิเคราะห์จากอินพุต ในกรณีทดสอบพวกเขาจะรวมอยู่ในหลักสูตรเพื่อให้แน่ใจว่าไม่มีความสับสนเกี่ยวกับตำแหน่งที่แท้จริง คุณสามารถทำการแมปอักขระที่ป้อนเข้ากับสิ่งอื่นได้ตราบใดที่ยังจำได้ว่าเป็นอักขระที่แตกต่าง (เช่นอักขระ ASCII ที่พิมพ์ได้) เอาท์พุต โปรแกรมจะต้องส่งคืนคะแนนต่ำสุดที่เป็นไปได้ (จำนวนการนัดหยุดงานที่น้อยที่สุดที่จำเป็นในการเข้าถึงรู) สำหรับหลักสูตรใด ๆ ที่ผ่านเป็นอินพุตในรูปแบบที่เหมาะสม (สตริงจำนวนเต็มลอยหรือไฮกุอธิบายผลลัพธ์) หากหลักสูตรเป็นไปไม่ได้ที่จะเอาชนะให้ส่งคืน-1(หรือมูลค่าที่ผิดพลาดอื่น ๆ ที่คุณเลือกซึ่งจะไม่ถูกส่งคืนสำหรับหลักสูตรที่เอาชนะได้) ตัวอย่าง: ในตัวอย่างนี้ตำแหน่งจะถูกระบุด้วย 0, X / Y, จากซ้ายไปขวา, จากบนลงล่าง - แต่คุณสามารถใช้รูปแบบใดก็ได้ที่คุณต้องการเนื่องจากผลลัพธ์นั้นเป็นรูปแบบที่ไม่ขึ้นอยู่กับความสมบูรณ์ การป้อนข้อมูล: ########### # ....# # ...# # ~ . # # ~~~ . # # ~~~~ …