帮忙看看,谢谢!!
#include<bits/stdc++.h>
using namespace std;
int n,a,b,k[209],step=0,c[209];
bool d[209];
int dfs(int a,int b,int step){
if(d[a]==true){
c[a]=step;
d[a]==false;
}
if(a==b) return c[a];
if(a-k[a]<1&&a+k[a]>n) return -1;
else{
if(a-k[a]>=1&&d[a-k[a]]==true) dfs(a-k[a],b,step+1);
else if(a+k[a]<=n&&d[a+k[a]]==true) dfs(a+k[a],b,step+1);
}
}
int main(){
cin>>n>>a>>b;
memset(d,true,209);
for(int i=1;i<=n;i++) cin>>k[i];
cout<<dfs(a,b,step)<<endl;
return 0;
}