求助,没找到错误
#include <iostream>
#include <cstring>
using namespace std;
const int N = 250;
int k[N];
int d[N];
int q[N*N];
int n,a,b;
int bfs(){
int hh=0,tt=0;
q[0] = 1;
memset(d,-1,sizeof(d));
d[1] = 0;
int offset[2] = {-1,1};
while(hh<=tt){
int head = q[hh++];
for(int i=0;i<2;i++){
int next = head+(offset[i]*k[head]);
if(next>=0&&next<=n&&d[next]==-1){
d[next] = d[head]+1;
q[++tt] = next;
}
}
}
return d[b]-d[a];
}
int main(){
cin>>n>>a>>b;
for(int i=1;i<=n;i++) cin>>k[i];
cout << bfs();
return 0;
}