#include<bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
int n,ai,b,ans=1e9;
cin>>n>>ai>>b;
map<int,int> a;
for(int i=1;i<=n;i++){
int x;
cin>>x;
a[i]=x;
}
vector<int> vis(n+1,0);
function<void(int,int)> Solve=[&](int cur,int step){
if(cur==b){
ans=min(ans,step);
return;
}
if(cur>n||cur<1){
return;
}
if(vis[cur]){
return;
}
vis[cur]=1;
Solve(cur+a[cur],step+1);
Solve(cur-a[cur],step+1);
};
Solve(ai,0);
cout<<(ans==1e9?-1:ans)<<'\n';
return 0;
}
把第9个数据点下载了之后发现应该有一些情况没有搜索到(?),为什么会这样???