得了90分,代码如下:
#include<bits/stdc++.h>
using namespace std;
int ans[201],d[201]={0};
int n,a,b;
void dfs(int s,int t){
ans[s]=t;
if(s+d[s]<=n&&t+1<ans[s+d[s]]){
dfs(s+d[s],t+1);
}
if(s-d[s]>0&&t+1<ans[s-d[s]]){
dfs(s-d[s],t+1);
}
}
int main(){
for(int i=1;i<=200;i++){
ans[i]=0x7f;
}
cin>>n>>a>>b;
for(int i=1;i<=n;i++){
cin>>d[i];
}
dfs(a,0);
if(ans[b]!=0x7f){
cout<<ans[b];
}
else{
cout<<-1;
}
return 0;
}