80分求助,WA了8,9这两个点,不知道哪错了
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int k[210],cnt[210];
int n,a,b;
int dfs(int x,int tot)
{
cnt[x]++;
if(cnt[x]>1) return -1;
if(x==b)return tot;
if(x+k[x]<=n)
{
int m=dfs(x+k[x],tot+1);
return m;
}
if(x-k[x]>0)
{
int m=dfs(x-k[x],tot+1);
return m;
}
if(x+k[x]<=0&&x-k[x]<=0) return -1;
}
int main()
{
//freopen("P1135.in.txt","r",stdin);
//freopen("P1135.out1.txt","w",stdout);
scanf("%d%d%d",&n,&a,&b);
memset(k,0,sizeof(k));
for(int i=1;i<=n;i++)
cin>>k[i];
int tot=dfs(a,0);
memset(cnt,0,sizeof(cnt));
cout<<tot<<endl;
return 0;
}