#include <iostream>
using namespace std;
int n,a,b,mn=1000,k[205];
void srh(int fl,int cnt){
if(fl==b){
mn=min(mn,cnt);
return ;
}
if(fl+k[fl]<=n)
srh(fl+k[fl],cnt+1);
if(fl-k[fl]>=1)
srh(fl-k[fl],cnt+1);
}
int main(){
cin>>n>>a>>b;
for(int i=1;i<=n;i++)
cin>>k[i];
srh(a,0);
if(mn==1000)
cout<<-1<<endl;
else
cout<<mn<<endl;
return 0;
}
以上是本蒟蒻的代码,望大佬指点!