12分全超时求条
查看原帖
12分全超时求条
598652
Rui_1911楼主2025/1/15 16:51

如题

#include<bits/stdc++.h>
using namespace std;
int n,a,b,n1[205]={0},ans=0,vis[205]={0};
struct r{
	int x,y;
};
queue<r>q;
int main(){
	cin>>n>>a>>b;
	for(int i=1;i<=n;i++){
		cin>>n1[i];
	}
	q.push({a,ans});
	while(!q.empty()){
		if(q.front().x==b){
			cout<<q.front().y;
			return 0;
		}
		else{
			if(q.front().x+n1[q.front().x<=n&&vis[q.front().x]==0]){
				q.push({q.front().x+n1[q.front().x],ans++});
				q.pop();
				vis[q.front().x]=1;
				cout<<"a";
			}
			if(q.front().x-n1[q.front().x>=1&&vis[q.front().x]==0]){
				q.push({q.front().x-n1[q.front().x],ans++});
				q.pop();
				vis[q.front().x]=1;
				cout<<"b";
			}
		}
	}
	cout<<"-1";
	return 0;
}
2025/1/15 16:51
加载中...