第一点TLE了
#include<bits/stdc++.h>
using namespace std;
int k,a,b,ans=0x7ffffff;
int m[205];
bool n[205];
void dfs(int now,int sum)
{
if(now==b) ans=min(ans,sum);
if(sum>ans) return;
n[now]=1;
if(now+m[now]<=k&&!n[now+m[now]]) dfs(now+m[now],sum+1);
if(now-m[now]>=1&&!n[now-m[now]]) dfs(now-m[now],sum+1);
n[now]=0;
}
int main()
{
scanf("%d%d%d",&k,&a,&b);
for(int i=1;i<=k;i++) scanf("%d",&m[i]);
n[a]=1;
dfs(a,0);
if(ans!=0x7ffffff) printf("%d",ans);
else printf("-1");
return 0;
}