换了个思路,MLE
#include<bits/stdc++.h>
using namespace std;
int k[255],n,a,b,ans=10000;
void f(int st,int sum){
if(st==b){
ans=min(ans,sum);
return;
}
if(st+k[st]<=n)f(st+k[st],sum+1);
if(st-k[st]>0)f(st-k[st],sum+1);
return;
}
int main(){
cin>>n>>a>>b;
for(int i=1;i<=n;i++)cin>>k[i];
f(a,0);
if(ans!=10000)cout<<ans;
else cout<<-1;
return 0;
}