一个野生的迭代加深,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;
}