代码:
#include<bits/stdc++.h>
using namespace std;
int n,b,s,ans=INT_MAX,d[207];
bool v[207];
void dfs(int s,int a)
{
if(s>=ans) return;
if(a==b)
{
ans=min(s,ans);
return;
}
v[a]=true;
if(a+d[a]<=n && !(v[a+d[a]])) dfs(s+1,a+d[a]);
if(a-d[a] >0 && !(v[a-d[a]])) dfs(s+1,a-d[a]);
v[a]=false;
return;
}
int main()
{
int a;
cin>>n>>a>>b;
for(int i=1;i<=n;i++) cin>>d[i];
dfs(0,a);
if(ans!=INT_MAX) cout<<ans;
else cout<<-1;
return 0;
}