前五个点WA 70tps求助
查看原帖
前五个点WA 70tps求助
1327857
Endless_summer楼主2024/7/17 15:27

(我是怎么也想不明白为什么WA的是前五个点QAQ)

#include<bits/stdc++.h>
#include<queue>
using namespace std;
int K[201];
int level[201];
int main(){
	int N,A,B;
	int x,y,p;
	cin>>N>>A>>B;
	for(int i=1; i<=N; i++)	cin>>K[i];
	level[A]=1;
	queue <int> Q;
	Q.push(A);
	while(!Q.empty()){
		p=Q.front();
		x=Q.front()+K[Q.front()];
		y=Q.front()-K[Q.front()];
		if(x==y) break; 
		Q.pop();
		if(1<=x&&x<=N){
			if(!level[x]||(level[p]+1<level[x])){
				level[x]=level[p]+1;
				Q.push(x);
			}
		}
		if(1<=y&&y<=N){
			if(!level[y]||(level[p]+1<level[y])){
				level[y]=level[p]+1;
				Q.push(y);
			}
		}
	}
	cout<<level[B]-1;
	return 0;
}
2024/7/17 15:27
加载中...