12pts,其余MLE
查看原帖
12pts,其余MLE
964579
IOI_official楼主2024/7/24 10:54
#include<bits/stdc++.h>
using namespace std;
short n,a,b,m[500],now,ans=0,minn=1145;
void dfs(int k){
	if(k==b){
		minn=min(ans,minn);
		return;
	}
	if(k<1||k>n){
		return;
	}
	for(int i=0;i<=1;i++){
		if(i==0){
			ans++;
			dfs(k+m[k]);
			ans--;
		}	
		else{
			ans++;
			dfs(k-m[k]);
			ans--;
		}
	}
	return;
}
int main(){
	cin>>n>>a>>b;
	for(int i=1;i<=n;i++){
		cin>>m[i];
	}
	dfs(a);
	if(minn==1145){
		cout<<-1;
		return 0;
	} 
	cout<<minn;
	return 0;
}
2024/7/24 10:54
加载中...