奇怪的电梯
坐标:https://www.luogu.com.cn/problem/P1135
建议搭配马的遍历一起使用更加
coad
#include<bits/stdc++.h>
using namespace std;
const int N=250;
int k[N];
int f[2]={1,-1};
int l[N];
bool e[N];
queue<int> st;
int main(){
memset(l,-1,sizeof(l));
int n,a,b;
cin>>n>>a>>b;
if(a==b){
cout<<0;
return 0;
}
for(int i=1;i<=n;i++){
cin>>k[i];
}
st.push(a);
l[a]=0;
while(!st.empty()){
for(int i=0;i<2;i++){
int mid=st.front()+k[st.front()]*f[i];
if(mid<=n&&mid>-2&&!e[mid]){
l[mid]=l[st.front()]+1;
e[mid]=1;
st.push(mid);
}
}
st.pop();
}
cout<<l[b];
return 0;
}