1 # @Author :whyCai
2 # @Time :2021/4/8 23:28
3
4 '''
5
6 输入一串数字,以空格相隔,要走到最短路径,输出最短路径的步数,如果没有,输出-1
7 要求:
8 1.第一步 大于1小于长度的一半
9 2.以后的步数为第一步走到该数字的步数
10
11 例:
12 输入
13 7 5 9 4 2 6 8 3 5 4 3 9
14 输出:
15 2
16 解释:第一次走2步,第二次9步正好结束
17
18 输入:
19 1 2 3 7 1 5 9 3 2 1
20 输出:
21 -1
22 '''
23 import sys
24 for line in sys.stdin:
25 a = line.split()
26 break
27 l = len(a)
28 res=[]
29 n = 1
30
31 if l%2 ==3:
32 ll =2
33 else:
34 ll = int(l/2)
35
36 for i in range(1,ll):
37 while True:
38 total = i+int(a[i])
39 print(total)
40 if total <l-1:
41 i = total
42 n = n+1
43 elif total ==l-1:
44 res.append(n)
45 break
46 else:
47 break
48
49 if len(res)==0:
50 print(-1)
51 else:
52 print(min(res))
53
54
55 # ps 执行了10条用例,出错了6个,暂未找到原因··········