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个,暂未找到原因··········