94 为啥#6输出对的还是wa了
查看原帖
94 为啥#6输出对的还是wa了
1055881
DangX楼主2024/10/23 00:32
#include <bits/stdc++.h>
#define int long long
#define endl "\n"
using namespace std;
int a[10005];
int N,A,B;int ans=-1;int xx;
int vis[10005];
struct node
{
	int x,cnt;
}S;
queue<node>q;
void bfs()
{
	q.push(S);
	vis[S.x]=0;
	while(!q.empty())
	{
		node T=q.front();
		q.pop();
		for(int i=1;i<=2;i++)
		{
			if(T.x==B)
			{
				ans=T.cnt;
			}				
			if(i==1)
				xx=T.x+a[T.x];
			if(i==2)
				xx=T.x-a[T.x];
			if(T.x<1 || T.x>N || vis[xx]!=-1)
				continue;
			vis[xx]=0;

			q.push((node){xx,T.cnt+1});
		}
	}
}
signed main()
{
	ios::sync_with_stdio(false);
	cin.tie(nullptr);cout.tie(nullptr);

	cin>>N>>A>>B;
	memset(vis,-1,sizeof(vis));
	for(int i=1;i<=N;i++)
	{
		cin>>a[i];
	}
	S.x=A;
	S.cnt=0;
	bfs();
	cout<<ans<<endl;

	return 0;
}/*Orz Orz Orz ACACAC*/
2024/10/23 00:32
加载中...