30分求助
查看原帖
30分求助
857349
BinSky楼主2024/1/23 14:58
#include <bits/stdc++.h>
using namespace std;
int n,a,b,k[201],minn=114514514,cnt=0;
void dfs(int n)
{
	if(n==b)
	{
		minn = min(cnt,minn);
		return ;
	}
	if(n-k[n]>0)
	{
		cnt++;
		dfs(n-k[n]);
		cnt--;
		
	}
	if(n+k[n]<=n)
	{
		cnt++;
		dfs(n+k[n]);
		cnt--;
	}
	return ;
}
int main()
{
	cin>>n>>a>>b;
	for(int i=1;i<=n;i++)
	{
		cin>>k[i];
	}
	dfs(a);
	if(minn==114514514)
		cout<<-1<<endl;
	else
		cout<<minn<<endl;
	return 0;
}

测评记录

2024/1/23 14:58
加载中...