#include <bits/stdc++.h>
using namespace std;
struct Node{
int ne;
int len;
}node[210];
int mp[210];
queue<Node> q;
int vis[210];
int n;
int x,y;
void bfs(int root){
q.push({root,0});
vis[root] = 1;
while(!q.empty()){
Node s = q.front();
q.pop();
if(s.ne==y){
cout<<s.len;
return ;
}
int qq = s.ne+mp[s.ne];
int ww = s.ne-mp[s.ne];
if(qq>=1&&qq<=n&&vis[qq] ==0){
q.push({qq,s.len+1});
vis[qq] = 1;
}
if(ww>=1&&ww<=n&&vis[ww] == 0){
q.push({ww,s.len+1});
vis[ww] = 1;
}
}
cout<<"1";
}
int main() {
cin>>n;
cin>>x>>y;
for(int i = 1;i<=n;i++){
cin>>mp[i];
}
if(x==y){
cout<<0;
return 0;
}
bfs(x);
return 0;
}
不知道怎么做呀