#3WA#4#7RE,向大佬求助
查看原帖
#3WA#4#7RE,向大佬求助
369897
放学后茶会楼主2020/10/11 20:52
#include<bits/stdc++.h>
using namespace std;
int N,a,b,ans,K[210];
bool v[210];
queue<int> que;
int bfs(int x,int y){
	que.push(x);
	que.push(1);
	v[x]=1;
	while(1){
		int now=que.front();
		que.pop();
		v[now]=1;
		int num=que.front();
		que.pop();
		if(K[now]==0&&que.empty())return 0;
		if(now==y)return num;
		if(now+K[now]<=N&&!v[now+K[now]]){
			que.push(now+K[now]);
			que.push(num+1);
		}
		if(now-K[now]>=1&&!v[now-K[now]]){
			que.push(now-K[now]);
			que.push(num+1);
		}
	}
}
int main(){
	cin>>N>>a>>b;
	for(int i=1;i<=N;i++){
		cin>>K[i];
	}
	ans=bfs(a,b);
	cout<<ans-1;
	return 0;
}
2020/10/11 20:52
加载中...