30分MLE玄关
查看原帖
30分MLE玄关
1076932
z__j__y楼主2024/5/2 22:35
#include <iostream>
#include <queue>
using namespace std;
int n,a,b;
struct NODE{
	int data,num,value=-1;
}x[201];
queue <NODE> q;
signed main(){
	cin >> n >> a >> b;
	for(int i=1;i<=n;i++){
		cin >> x[i].num;
		x[i].data=i;
	}
	x[a].value=0;
	q.push(x[a]);
	while (!q.empty()){
		NODE tmp=q.front();
		if(tmp.data==b){
			cout << tmp.value;
			return 0;
		}
		q.pop();
		if(tmp.data+tmp.num<=n)q.push({tmp.data+tmp.num,x[tmp.data+tmp.num].num,tmp.value+1});
		if(tmp.data-tmp.num>=1)q.push({tmp.data-tmp.num,x[tmp.data-tmp.num].num,tmp.value+1});
	}
}
2024/5/2 22:35
加载中...