#include<bits/stdc++.h>
using namespace std;
int main(){
int n,b,a;
cin>>n>>a>>b;
int flis[n],adlis[n];
for(int i=0;i<n;i++){
cin>>flis[i];
if(i==a-1){
adlis[i]=1;
}else{
adlis[i]=0;
}
}
stack <int>zb;int belis[n];short pd=1;
for(int i=a-1;i!=b-1;){
if(i-flis[i]>0 && i-flis[i]<n && i+flis[i]>0 && i+flis[i]<n && adlis[i-flis[i]]==0 && adlis[i+flis[i]]==0){
zb.push(i);
for(int i=0;i<n;i++){
belis[i]=adlis[i];
}
i+=flis[i];adlis[i]=1;
}else if(i+flis[i]>0 && i+flis[i]<n && adlis[i+flis[i]]==0){
i+=flis[i];adlis[i]=1;
}else if(i-flis[i]>0 && i-flis[i]<n && adlis[i-flis[i]]==0){
i-=flis[i];adlis[i]=1;
}else{
if(!zb.empty()){
i=zb.top();
for(int i=0;i<n;i++){
adlis[i]=belis[i];
}
i-=flis[i];adlis[i]=1;
}else{
cout<<-1;
pd=0;
break;
}
}
}
if(pd==1){
int an=0;
for(int i=0;i<n;i++){
if(adlis[i]==1){
an++;
}
}
cout<<an-1;
}
return/*191981*/0;
}
测试点7,8,10,11,12,16 AC
1,2,3,4,5,6,13,14 TLE
还有9,15 WA