WA了第一个点
#include<bits/stdc++.h>
using namespace std;
int n,a,b,f[500],ans,minn=INT_MAX,k;
bool flag[500];
void dfs(int x)
{
if(x==b)
{
if(ans<=minn) minn=ans;
return;
}
if(x<1||x>n||flag[x]==1)return;
if(ans>=minn) return;
ans++;
flag[x]=1;
dfs(x-f[x]);
flag[x]=0;
ans--;
ans++;
flag[x]=1;
dfs(x+f[x]);
flag[x]=0;
ans--;
return;
}
int main()
{
cin>>n>>a>>b;
for(int i=1;i<=n;i++) cin>>f[i];
dfs(a);
if(minn==INT_MAX) cout<<-1;
else cout<<minn;
return 0;
}