求助~~~样例通过了
查看原帖
求助~~~样例通过了
591428
tangguochao楼主2021/12/1 17:58
#include <bits/stdc++.h>
using namespace std;
int A,B,N;
int main()
{
    cin >> N >> A >> B;
    int a[N+1];
    for(int i=1;i<=N;i++)
        cin >> a[i];

    int ans[N+1];
    queue<int>Q;
    ans[A]=0;
    Q.push(A);
    while (!Q.empty())
    {
        int n=Q.front();
        int d=ans[n];
        Q.pop();
        if(n+a[n]>=1&&n+a[n]<=N)
        {
            ans[n+a[n]]=d+1;
            if(n+a[n]==B)
            {
                printf("%d",d+1);
                return 0;
            }
            Q.push(n+a[n]);
        }
        if(n-a[n]>=1&&n-a[n]<=N)
        {
            ans[n-a[n]]=d+1;
            if(n-a[n]==B)
            {
                printf("%d",d+1);
                return 0;
            }
            Q.push(n-a[n]);
        }
    }
    cout << "-1";
}
2021/12/1 17:58
加载中...