求助
查看原帖
求助
341245
xrk2006楼主2021/7/7 19:53

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;
}
2021/7/7 19:53
加载中...