76分DFS,求助
查看原帖
76分DFS,求助
1042158
0LCH0楼主2024/1/21 18:54
#include<bits/stdc++.h>
using namespace std;
long long n,m,k,a[210],ans=1e18,minn[210];
void dfs(long long u,long long v,long long s)
{
	if(u<1 || u>n)
		return ;
	if(s>=minn[u])
		return ;
	if(s>=ans)
		return ;
	if(u==v)
	{
		ans=s;
		return ;
	}
	minn[u]=s;
	dfs(u+a[u],v,s+1);
	dfs(u-a[u],v,s+1);
}
int main()
{
	cin>>n>>m>>k;
	for(int i=1;i<=n;i++)
		cin>>a[i],minn[i]=666666;
	dfs(m,k,0);
	if(ans!=666666)
		cout<<ans;
	else
		cout<<-1;
	return 0;
}
2024/1/21 18:54
加载中...