64pts 求调,玄关
查看原帖
64pts 求调,玄关
1212465
SilVeR__WolF楼主2024/6/2 14:28
#include<bits/stdc++.h>
using namespace std;
int n,a,b,flr[205],ans=INT_MAX,vst[205];
void dfs(int x,int step){
	if(x==b){
		ans=min(ans,step);
		return;
	}
	if(step>=ans)	return;
	int u=x+flr[x],d=x-flr[x];
	if(u<=n&&!vst[u]){
		vst[u]=true;
		dfs(u,step+1);
		vst[u]=false;
	}
	if(d>=1&&!vst[d]){
		vst[d]=true;
		dfs(d,step+1);
		vst[d]=false;
	}
}
int main(){
	cin>>n>>a>>b;
	for(int i=1;i<=n;i++)	cin>>flr[i];
	vst[a]=true;
	dfs(a,0);
	if(ans==INT_MAX)	cout<<-1;
	else 				cout<<ans;
	return 0;
} 
2024/6/2 14:28
加载中...