错#8 求助!
查看原帖
错#8 求助!
719357
pppzz楼主2022/7/2 15:02
#include<bits/stdc++.h>
using namespace std;

struct node{
    int sum;
    int y;
}start;
int vec[2]={-1,1};
bool vis[210];
int n,a,b;
int flag=0;
int nums[210];

int main(){
    cin>>n>>a>>b;
    start.y=a;
    start.sum=0;
    vis[a]=true;
    for(int i=1;i<=n;i++)cin>>nums[i];
    if(a==b){
        cout<<"0";
        return 0;
    }
    queue<node> q;
    q.push(start);
    while(!q.empty()){
        node f=q.front();
        for(int i=0;i<2;i++){
            int next_y=f.y+nums[f.y]*vec[i];
            if(next_y==b){
                cout<<f.sum+1;
                flag=1;
                break;
            }
            if(next_y>0&&next_y<=n&&vis[next_y]==false){
                node temp{f.sum+1,next_y};
                vis[temp.y]=true;
                q.push(temp);
            }
        }
        q.pop();
    }
    if(flag==0)cout<<"-1";
    return 0;
}

2022/7/2 15:02
加载中...