เลือกหนังสือผจญภัยของคุณเองเป็นรูปแบบของวรรณกรรมเชิงโต้ตอบที่ผู้อ่านจะต้องทำการตัดสินใจที่มีผลต่อผลลัพธ์ของเรื่องราว ในบางจุดของเรื่องผู้อ่านมีหลายตัวเลือกที่สามารถเลือกได้แต่ละคนส่งผู้อ่านไปยังหน้าอื่นในหนังสือ
ตัวอย่างเช่นในการตั้งค่าจินตนาการเราอาจต้องตัดสินใจในหน้า 14 ว่าจะเสี่ยงเข้าไปในถ้ำลึกลับโดย "กระโดด" ถึงหน้า 22 หรือสำรวจป่าใกล้เคียงโดยการกระโดดไปที่หน้า 8 "กระโดด" เหล่านี้สามารถแสดงได้ เป็นคู่ของหมายเลขหน้าดังนี้:
14 22
14 8
ในกรณีส่วนใหญ่มีเรื่องราวตอนจบมากมาย แต่มีเพียงไม่กี่คนที่ดี เป้าหมายคือการนำทางเรื่องราวไปสู่จุดจบที่ดี
งาน:
รับรายการของ "การข้าม" สำหรับหนังสือที่กำหนดงานของคุณคือการกำหนดเส้นทางที่จะนำไปสู่การสิ้นสุดที่เฉพาะเจาะจง ตั้งแต่นี้ค่อนข้างง่ายความท้าทายที่แท้จริงคือการทำมันในตัวละครน้อยที่สุด
นี่คือกอล์ฟรหัส
ตัวอย่างอินพุต (โดยที่ 1 คือจุดเริ่มต้นและ 100 คือเป้าหมาย):
1 10
10 5
10 13
5 12
5 19
13 15
12 20
15 100
ตัวอย่างผลลัพธ์:
1 10 13 15 100
ตัวอย่างอินพุต:
15 2
1 4
2 12
1 9
3 1
1 15
9 3
12 64
4 10
2 6
80 100
5 10
6 24
12 80
6 150
120 9
150 120
ตัวอย่างผลลัพธ์:
1 15 2 12 80 100
หมายเหตุ:
- รายการของการกระโดดจะถูกป้อนโดยผู้ใช้ทั้งจากไฟล์หรือ stdin คุณสามารถเลือกได้ว่าสะดวกที่สุด
- อินพุตจะมีการกระโดด 1 ครั้งต่อบรรทัดโดยที่ต้นทางและปลายทางคั่นด้วยช่องว่างเดียว
- บรรทัดในอินพุตไม่รับประกันว่าจะอยู่ในลำดับที่เฉพาะเจาะจง
- เส้นทางที่ประสบความสำเร็จจะเริ่มต้นที่หน้า 1 และสิ้นสุดที่หน้า 100
- คุณอาจคิดว่ามีอย่างน้อย 1 เส้นทางไปยังเป้าหมาย คุณไม่จำเป็นต้องค้นหาเส้นทางทั้งหมดหรือไม่จำเป็นต้องหาเส้นทางที่สั้นที่สุด เพียงแค่หาอย่างน้อยหนึ่ง
- หมายเลขหน้าที่เล็กที่สุดจะเป็น 1 ไม่ จำกัด จำนวนหน้ามากที่สุด (คุณสามารถสันนิษฐานได้ว่ามันจะพอดีกับช่วงของ int)
- อาจมีลูป ตัวอย่างเช่นรายการอาจมีการข้ามจากหน้า 5 ถึง 10, 10 ถึง 19 และ 19 ถึง 5
- อาจมีจุดจบ นั่นคือหน้าปลายทางอาจไม่มีที่ใดก็ได้ที่จะข้ามไป
- ในทางกลับกันอาจมีหน้าเว็บที่ไม่สามารถเข้าถึงได้ นั่นคือหน้าต้นกำเนิดอาจไม่ได้เป็นปลายทางของการกระโดดใด ๆ
- ไม่รับประกันว่าจะมีการใช้หมายเลขหน้าทั้งหมดระหว่าง 1 ถึง 100
- ผลลัพธ์ของคุณควรประกอบด้วยเส้นทางที่ถูกต้องของหมายเลขหน้าเริ่มต้นด้วย 1 และสิ้นสุดที่ 100 คั่นด้วยช่องว่าง
จำไว้ว่านี่คือรหัสกอล์ฟดังนั้นทางออกที่สั้นที่สุดชนะ!
แก้ไข:เพิ่มตัวอย่างอื่นสำหรับการทดสอบ