《大佬们帮忙看看》
查看原帖
《大佬们帮忙看看》
422387
VIOLET__FOREVER楼主2022/4/3 10:15
#include<bits/stdc++.h>
using namespace std;
int n,minn=1e9;
int start,ans=0,en;
int a[205],b[1000];
void dfs(int x){
	if(x==en){
		minn=min(minn,ans);
		return ;
	}
	else{
		if(x+a[x]<=n && b[x+a[x]]==0){
			ans++;
			b[x]++;
			dfs(x+a[x]);
			b[x]--;
			ans--;
		}
		if(x-a[x]>=1 && b[x-a[x]]==0){
			ans++;
			b[x]++;
			dfs(x-a[x]);
			b[x]--;
			ans--;
		}
	}
}
int main(){
	cin>>n>>start>>en;
	for(int i=1;i<=n;i++) cin>>a[i];
	dfs(start);
	if(minn==1e9){
		cout<<-1;
		return 0;
	} 
	cout<<minn;
	return 0;
}
2022/4/3 10:15
加载中...