#1452. 奇怪的电梯

奇怪的电梯

描述

有一座 N 层的大楼,每层 i( 1iN1 ≤ i ≤ N )上有一个数字 KiK_i。电梯初始在 A 楼,目标是到达B 楼。电梯只有“上”和“下”两个有效操作(开/关不计步数):

  • 在第 i 层按“上”,电梯上升 KiK_i 层,到达 i+Kii + K_i 层;
  • 在第 i 层按“下”,电梯下降 KiK_i 层,到达 iKii − K_i 层。

每次按键算 1 次操作。只能在 1 到 N 层之间移动(超出范围的操作无效)。求从 A 到 B 的最少按键次数;若不可达,输出 -1。

输入输出格式

输入

第一行包含三个正整数 N、A、B,表示楼层数、起点楼层、终点楼层。

第二行包含 N 个非负整数 K1,K2,...,KNK_1, K_2, ..., K_N,表示每层对应的数字。

输出

一个整数:最少按键次数;若无法从 A 到达 B,输出 -1。

样例

5 1 5
3 3 1 2 5
3

限制

  • 1 ≤ N ≤ 200
  • 1 ≤ A, B ≤ N
  • 0 ≤ KiK_i ≤ N
  • 时间限制:1 秒;空间限制:256 MB