新飞行棋

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

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

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

未参加
状态
已结束
规则
ACM/ICPC
题目
4
开始于
2020-03-07 18:00
结束于
2020-03-10 18:00
持续时间
72.0 小时
主持人
参赛人数
8