64分前6个点TLE
查看原帖
64分前6个点TLE
782554
CCK_demon楼主2024/5/13 17:50
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll n,a,b,ans=1e18+5,k[205];
bool vis[205];
void dfs(ll cur,ll step)
{
	if(step>ans)
	{
		return ;
	}
	if(cur==b)
	{
		ans=min(ans,step);
		return ;
	}
	int next1=cur+k[cur];
	int next2=cur-k[cur];
	if(next1>=1&&next1<=n&&!vis[next1])
	{
		vis[next1]=1;
		dfs(next1,step+1);
		vis[next1]=0;
	}
	if(next2>=1&&next2<=n&&!vis[next2])
	{
		vis[next2]=1;
		dfs(next2,step+1);
		vis[next2]=0;
	}
	return ;
}
int main()
{
	cin>>n>>a>>b;
	for(int i=1;i<=n;i++)
	{
		cin>>k[i];
	}
	vis[a]=1;
	dfs(a,0);
	if(ans==1e18+5)
	{
		cout<<-1;
		return 0;
	}
	cout<<ans;
	return 0;
}
/*
200 162 78
40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 0 0 0 0 0 0 0 0 0 0 0 0 90 1 1 93 2 5 1 7 4 9 1 11 2 13 1 15 8 17 1 19 2 21 1 23 4 25 1 27 2 29 1 31 16 33 1 35 2 37 1 39 4 41 1 43 2 45 1 47 8 49 1 51 2 53 1 55 4 57 1 59 2 61 1 63 0 0 0 0 0 0 0 
*/
2024/5/13 17:50
加载中...