30分...
#include<iostream>
#include<algorithm>
using namespace std;
int n,a,b,k[201],ans=0x7fffffff;
void dfs(int floor,int x) {
if(floor>=ans) return;
else if(x==b) ans=min(floor,ans);
else {
if(x+k[x]<=n) dfs(floor+1,x+k[x]);
if(x-k[x]>=1) dfs(floor+1,x-k[x]);
}
}
int main() {
cin>>n>>a>>b;
for(int i=1;i<=n;i++) cin>>k[i];
dfs(0,a);
cout<<(ans==0x7fffffff?-1:ans)<<endl;
return 0;
}