新飞行棋

新飞行棋

Background

期末考试终于结束了。\(\text{Andy}\) 同学感觉松了一口气,他决定重温小时候的快乐时光--下飞行棋。

Description

但是他弄丢了传统飞行棋需要的骰子,因此他发明了一种新型的飞行棋游戏,规则如下:棋盘上有\(n\)个格子,由近到远分别编号为\(1\) 到 \(n\)。对于 \(1 \leq i \leq n\),第 \(i\) 个格子上写着一个正整数 \(N_i\)。当玩家处于第 \(a\) 个格子时,他可以选择往后走 \(N_a\) 步,或者往前倒退 \(N_a\) 步。当然如果 \(N_a+a>n\) ,那么他就只能选择后退;同理如果 \(a-N_a<1\),那么他就只能选择前进。保证不会出现既不能前进又不能后退的格子。
\(\text{Andy}\) 学完编程后对一个问题很感兴趣:从编号 \(s\) 出发,至少需要经过几把,可以到达 \(t\) 点?(例如在 \(a\) 点选择往前走 \(N_a\) 步,称之为一把)。

Format

Input

第一行三个整数,分别为 \(n,s,t\) 意义如题面所述。
第二行 \(n\) 个正整数,第 \(i\) 个数为 \(N_i\)。

Output

一个数,为最少经过的把数。如果 \(s\) 无法到达 \(t\),输出 \(-1\)。

Sample 1

Input

6 6 4
1 2 2 3 1 2

Output

1

Limitation

对于前 \(10\%\) 的数据,\(s=t\);
对于前 \(40\%\) 的数据,\(n \leq 200\);
对于另外 \(10\%\) 的数据,\(s\) 无法到达 \(t\);
对于 \(100\%\) 的数据,\(n \leq 200000\);

Source

Amorphophallus Orz Group

信息

ID
1027
难度
3
分类
搜索 点击显示
标签
递交数
8
已通过
2
通过率
25%
上传者

相关

在下列训练计划中:

AOG题库训练计划

在下列比赛中:

AOG月赛测试题3「3月月赛Div2」