#S6U11P04. 【作业】按楼层跳转的电梯

【作业】按楼层跳转的电梯

按楼层跳转的电梯

难度:T2

【知识点:广度优先搜索、等代价状态转移】

前置知识:数组、循环、队列、首次发现时标记距离。

题目描述

一栋楼共有 n 层,编号为 1 到 n。电梯初始在 A 层,目标是 B 层。在第 x 层按一次上行键会到 x+a[x] 层,按一次下行键会到 x-a[x] 层;结果不在 1 到 n 范围内的按键不能使用。只能停在跳转终点,不会停在中间楼层。求最少按键次数;无法到达输出 -1。A=B 时为 0;a[x]=0 时按键不会改变楼层。

输入格式

第一行 n A B。第二行 n 个整数 a[1] 到 a[n]。

输出格式

一行一个整数,表示最少次数或 -1。

样例输入

5 1 5
2 1 2 1 1

样例输出

2

样例解释

1→3→5,两次按键。

数据范围

1≤n≤1000,1≤A,B≤n,0≤a[x]≤n。