#HX2515. 队列与广度优先搜索问题题一:奇怪的电梯

提交2 通过1
通过率50%
时间限制1000ms
内存限制128MiB
    ID: 12801 传统题 1000ms 128MiB 尝试: 2 已通过: 1 难度: 普及 上传者: 标签>C++c++编程题浩轩OJ迁移6级2025年寒假六级班题库

题目描述

题目描述

呵呵,有一天刘老师做了一个梦,梦见了一种很奇怪的电梯。大楼的每一层楼都可以停电梯,而且第i层楼(1≤i≤N)有一个数字Ki(0≤Ki≤N)。

电梯只有四个按钮:开,关,上,下。上下的层数等于当前楼层上的那个数字。

当然,如果不能满足要求,相应的按钮就会失灵。

例如:3,3,1,2,5代表了Ki(K1=3,K2=3,...),从1楼开始。在1楼,按"上"可以到4楼,按"下"是不起作用的,因为没有−2楼。

那么,从A楼到B楼至少要按几次按钮呢?

输入格式

共二行。

第一行为3个用空格隔开的正整数,表示N,A,B(1≤N≤200,1≤A,B≤N)。

第二行为N个用空格隔开的非负整数,表示Ki。

输出格式

一行,即最少按键次数,若无法到达,则输出−1。

输入样例 #1

5 1 5
3 3 1 2 5

输出样例 #1

3

输入样例 #2

1 1 1
1

输出样例 #2

0

输入样例 #3

200 155 162
67 59 8 17 124 118 145 151 13 18 80 126 184 6 64 50 132 176 187 84 36 26 170 188 169 11 152 11 155 187 58 158 69 141 104 163 147 110 134 15 93 167 66 153 38 52 187 145 88 197 76 22 139 161 120 179 0 165 32 156 115 72 23 8 153 53 145 125 100 49 78 73 169 161 96 194 92 149 182 103 80 58 153 184 46 30 162 5 149 122 76 114 42 66 42 154 181 94 7 154 190 139 91 58 78 109 132 106 173 49 93 95 104 87 150 175 120 34 174 0 148 19 161 45 6 109 113 94 192 39 57 110 166 159 9 131 59 79 173 46 128 8 127 64 153 28 67 179 167 175 67 83 187 199 56 38 188 5 133 167 20 101 188 79 58 64 27 149 200 127 7 88 119 42 137 83 53 13 11 99 92 46 136 120 69 143 87 2 192 59 22 94 91 93 32 147 149 110 189 153

输出样例 #3

-1

数据范围与约定

1≤N≤200,1≤A,B≤N,0≤K_i≤N。