80分TLE 求大佬优化
查看原帖
80分TLE 求大佬优化
371364
Biuld楼主2021/5/24 21:36
#include<bits/stdc++.h>
using namespace std;
const int M=99999;
int s,n,m,a[201],b[201],ans=M;
void dfs(int u,int w,int t)
{
	//printf("%d %d %d\n",u,w,t);
	if(w==m)
	{
		printf("%d %d\n",ans,t);
		ans=min(ans,t);
		return;
	}
	if(w+u<=s && b[w+u]==0)
	{
		b[w+u]=1;
		dfs(a[w+u],w+u,++t);
		b[w+u]=0;
	}
	if(w-u>=1 && b[w-u]==0)
	{
		b[w-u]=1;
		dfs(a[w-u],w-u,++t);
		b[w-u]=0;
	}
	return;
}
int main()
{
	scanf("%d%d%d",&s,&n,&m);
	for(int i=1;i<=s;i++) scanf("%d",&a[i]);
	dfs(a[n],n,0);
	if(ans==M) printf("-1");
	else printf("%d",ans);
	return 0;
}
2021/5/24 21:36
加载中...