90分(一个RE)
查看原帖
90分(一个RE)
601245
I_am_zhima楼主2022/4/3 19:31
#include<iostream>
#include<cstdio>
using namespace std;
int n,a,b,ans=134217727;
int map[205];
bool f[205];
void dfs(int t,int sum){
	if(t==b){
		ans=min(ans,sum);
		return ;
	}
	if(sum>ans)
		return ;
	f[t]=1;
	if(t-map[t-1]>=1&&!f[t-map[t]]) dfs(t-map[t],sum+1);
	if(t+map[t+1]<=n&&!f[t+map[t]]) dfs(t+map[t],sum+1);
	f[t]=0;
}
int main(){
	scanf("%d%d%d",&n,&a,&b);
	for(int i=1;i<=n;i++)
		scanf("%d",&map[i]);
	f[a]=1;
	dfs(a,0);
	if(ans!=134217727) printf("%d",ans);
	else printf("-1");
	return 0;
} 
2022/4/3 19:31
加载中...