悬关
查看原帖
悬关
931919
cath20楼主2024/1/27 14:07

一个野生的迭代加深,TLE+RE了,求调

#include<bits/stdc++.h>
#define int unsigned long long
using namespace std;

int n,x,y,t,a[201];
bool z=false;

inline void read(register int &a)
{
	a=0;char c;
	while((c=getchar())<48);
	do a=(a<<3)+(a<<1)+(c^48);
	while((c=getchar())>47);
}

void dfs(int step,int k)
{
	if(k==y) z=true;
	if(step==0) return;
	if(k+a[k]<=n) dfs(step-1,k+a[k]);
	if(k-a[k]>0) dfs(step-1,k-a[k]);
}

signed main()
{
	read(n);
	read(x);
	read(y);
	for(int i=1;i<=n;++i) read(a[i]);
	t=0;
	while(t<=2*n)
	{
		dfs(t,x);
		if(z)
		{
			printf("%lld",t);
			return 0;
		}
		++t;
	}
	cout<<-1;
	return 0;
}
2024/1/27 14:07
加载中...