80分代码:(#8和#9没过)
#include <bits/stdc++.h>
using namespace std;
int c[201];
int q[1000001];
bool h[201];
int main(){
int n,a,b;
cin>>n>>a>>b;
for(int i=1;i<=n;i++) cin>>c[i];
int first=0,rear=0,sum=0;
q[0]=a;
while(first<=rear){
if(q[first]==b){
cout<<sum;
return 0;
}
else{
h[q[first]]=true;
sum++;
if(q[first]+c[q[first]]<=n&&!h[q[first]+c[q[first]]]){
rear++;
q[rear]=q[first]+c[q[first]];
}
else if(q[first]-c[q[first]]>=1&&!h[q[first]-c[q[first]]]){
rear++;
q[rear]=q[first]-c[q[first]];
}
first++;
}
}
cout<<-1;
return 0;
}