选择自己的冒险书籍是一种互动文学形式,读者必须做出影响故事结果的决定。在故事的某些点上,读者可以选择多个选项,每个选项都会将读者发送到书中的不同页面。
例如,在幻想环境中,人们可能必须在第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
笔记:
- 跳转列表将由用户从文件或标准输入中输入。您可以选择最方便的一种。
- 输入将每行包含1个跳转,起点和终点之间用一个空格隔开。
- 输入中的行不保证按任何特定顺序排列。
- 成功的路径将从第1页开始,到第100页结束。
- 您可以假设至少有1条通往目标的路径。您无需查找所有路径,也无需查找最短路径。只要找到至少一个。
- 最小的页码为1。最大的页码没有限制。(您可以假定它会在int范围内。)
- 可能存在循环。例如,该列表可能从第5页跳至10,从10跳至19和从19跳至5。
- 可能会有死胡同。也就是说,目标页面可能没有任何地方可跳转。
- 相反,可能存在无法访问的页面。也就是说,原始页面可能不是任何跳转的目的地。
- 不能保证使用1到100之间的所有页码。
- 您的输出应包含一个有效的页码路由,以1开始,以100结尾,以空格分隔。
请记住,这是代码高尔夫,所以最短的解决方案是成功的!
编辑:添加了另一个示例进行测试。