密室逃脱
题号:NC208047
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小Q来到了一处密室,密室有N个房间,每个房间都有自己的编号,从1到N,N不超过200
每个房间最多有2个通道通往另一个房间,并且刚好要么是自己的编号+a_i,要么-a_i(注意!不会有编号小于1或者大于N的房间),
小Q想知道,给定起点A和出口B,最短需要跳转几次可以到达出口,当然也可能无法到达出口

输入描述:

第一行输入N,A,B表示房间总数,起点A和出口B,
第二行N个数,分别是a_1,a_2...a_Na_i的含义如上

输出描述:

输出最短到达出口的跳转次数,如果无法到达出口,输出-1
示例1

输入

复制
5 1 5
3 3 1 2 5

输出

复制
3

说明

从1号房间前进3,到达4号房间,后退2到达2号房间,前进3到达5号房间,跳转3次