奇怪的电梯
#include<bits/stdc++.h>
using namespace std;
int s[520],u[520],n,a,b,w=INT_MAX;
#define pii pair<int , int>
queue<pii>q;
void bfs()
{
q.push({a,0});
while(!q.empty())
{
auto c=q.front();
u[c.first]=1;
q.pop();
if(c.first==b){
w=min(w,c.second);
}
int x = c.first-s[c.first], y = c.first+s[c.first];
if(y<=b&&u[y]==0)q.push({y, c.second + 1});
if(x>0&&u[x]==0)q.push({x, c.second + 1});
}
if(w==INT_MAX)cout<<-1;
else cout<<w;
}
int main()
{
cin>>n>>a>>b;
for(int i=1;i<=n;i++)
{
cin>>s[i];
}
bfs();
return 0;
}