dfs,58分,救命!!!帮帮忙吧!!!求助
查看原帖
dfs,58分,救命!!!帮帮忙吧!!!求助
1018182
ShaunSH楼主2024/6/28 21:11
#include<cstdio>
#include<algorithm>
using namespace std;
int k[205],n,a,g,minn=1000000000000,ans,line;
bool vis[205];
int dfs(int step){
	if(step<=0)return 1000000;
	if(step>n)return 1000000;
	if(vis[step]==1)return 1000000;
	if(step==g)return line;
	line++;
	vis[step]=1;
	if(k[step]==0)return 1000000;
	return min(dfs(step-k[step]),dfs(step+k[step]));
}
int main(){
	scanf("%d%d%d",&n,&a,&g);
	for(int i=1;i<=n;i++){
		scanf("%d",&k[i]);
	}
	ans=dfs(a);
	if(ans==1000000)ans=-1;
	printf("%d",ans);
	return 0;
}
2024/6/28 21:11
加载中...