Rhylเมืองบ้านเกิดของฉันมีระบบการจราจรทางเดียวซึ่งดูเหมือนว่าได้รับการออกแบบมาเพื่อให้ผู้คนอยู่ห่างจากจุดหมายปลายทางของพวกเขาให้นานที่สุด งานของคุณถ้าคุณเลือกที่จะลองมันคือการผลิตโปรแกรมเพื่อให้เส้นทางที่สั้นที่สุดผ่านระบบการจราจร
อินพุต
อินพุตจะเปิดSTDINและจะเป็นรายการของจุดเริ่มต้นและจุดสิ้นสุดตามด้วยบรรทัดว่างตามด้วยรายการของแบบสอบถามดังนี้:
A B
B A
B C
C D
D C
A D
C A
B A
ถนนแต่ละเส้นสามารถเดินทางได้ในทิศทางที่กำหนดดังนั้นในตัวอย่างข้างต้นถนน A - B เป็นถนนสองทางในขณะที่ B - C เป็นถนนเดินรถทางเดียวจาก B ถึง C การเดินทางจาก C ไป B เป็นสิ่งต้องห้าม
จุดเริ่มต้นและจุดสิ้นสุดทั้งหมดจะถูกแสดงด้วยตัวอักษรตัวพิมพ์ใหญ่ตัวเดียว
เอาท์พุต
ผลลัพธ์ควรเป็นเส้นทางที่สั้นที่สุด (วัดจากจำนวนจุดที่เยี่ยมชม) จากจุดเริ่มต้นที่กำหนดไปยังจุดสิ้นสุดที่กำหนดสำหรับแต่ละแบบสอบถามที่ได้รับ หากไม่มีเส้นทางดังกล่าวเอาท์พุทบรรทัดว่าง หากมีเส้นทางที่สั้นที่สุดมากกว่าหนึ่งเส้นทางให้ส่งออกเส้นทางแรกเมื่อเรียงเส้นทางที่สั้นที่สุดทั้งหมดโดยใช้วิธีการทางพจนานุกรม
สำหรับตัวอย่างข้างต้นผลลัพธ์จะเป็น:
A B C D
B A
สคริปต์ทดสอบ
เมื่อก่อนฉันได้ทำการทดสอบสำหรับงานนี้โดยอ้างอิงจากสคริปต์ที่เขียนโดยJoeyและVentero : -
และยังทดสอบและส่งออกที่คาดหวังสำหรับผู้ที่ไม่สามารถใช้สคริปต์ด้านบน
การใช้งาน: ./test [your program and its arguments]
รางวัล
คำตอบทั้งหมดที่เห็นได้ชัดว่ามีความพยายามในการเล่นกอล์ฟที่ตรงตามข้อกำหนดและผ่านการทดสอบทั้งหมดจะได้รับ upvote ของฉัน คำตอบที่สั้นที่สุดภายใน 26/01/2012 จะได้รับการยอมรับ
output the first when sorting all shortest routes lexicographically- ดังนั้นถ้าA B DและA C Dทั้งคู่เป็นทางออกที่ถูกต้อง, เอาท์พุทA B Dแทน?