超时求条
查看原帖
超时求条
1382547
prinsyisabeila楼主2024/12/27 20:39
#include<bits/stdc++.h>
using namespace std;
int n,a,b,k[205],r=0x3f3f3f3f;
void dfs(int x,int ans) {
	if(x==b) {
		r=min(r,ans);
		return;
	}
	if(x-k[x]>=1) dfs(x-k[x],ans+1);
	if(x+k[x]<=n) dfs(x+k[x],ans+1);
}
int main() {
	cin>>n>>a>>b;
	for(int i=1; i<=n; ++i) {
		cin>>k[i];
	}
	dfs(a,0);
	if(r==0x3f3f3f3f) cout<<-1;
	else cout<<r;
}

2024/12/27 20:39
加载中...