求助!
using namespace std;
int n,a,b;
int k[250];
int q[3][1000],f,r;
int flag[210]={0};
int pos[3]={1,-1};
int v=0;
bool lo=true;
void print(int r){
int i=r;
while (i!=1){
v++;
i=q[2][i];
}
cout<<v;
}
void ks(){
q[1][1]=a;
q[2][1]=0;
f=1;
r=1;
if (a==b){
lo=false;
cout<<0;
return;
}
while(r>=f){
int x=q[1][f];
for (int i=0;i<=1;i++){
int x1=x+k[x]*pos[i];
if (x1>0 && flag[x1] == 0){
r++;
q[1][r]=x1;
q[2][r]=f;
flag[x1]=-1;
}
if (x1==b){
print(r);
lo=false;
}
}
f++;
}
}
int main(){
cin>>n>>a>>b;
for (int i=1;i<=n;i++){
cin>>k[i];
}
ks();
if (lo)cout<<-1;
}
#4 6 7 9 10 11WA了
求助plz!!!