| 比赛 | 
    NNOI2024 | 
    评测结果 | 
    AAAAAAAAAA | 
    | 题目名称 | 
    奇怪的电梯 | 
    最终得分 | 
    100 | 
    | 用户昵称 | 
    wdsjl | 
    运行时间 | 
    0.029 s  | 
    | 代码语言 | 
    C++ | 
    内存使用 | 
    3.34 MiB  | 
    | 提交时间 | 
    2024-12-28 15:57:18 | 
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
const int N = 210;
int n,a,b,k[N],dis[N];
void dfs(int u,int step){
	dis[u]=step;
	int v=u-k[u];
	if(1<=v&&step+1<dis[v]){
		dfs(v,step+1);
	}
	v=u+k[u];
	if(v<=n&&step+1<dis[v]){
		dfs(v,step+1);
	}
	return;
}
int main(){
	freopen("lift.in","r",stdin);
	freopen("lift.out","w",stdout);
	memset(dis,0x3f,sizeof(dis));
	cin>>n>>a>>b;
	for(int i=1;i<=n;i++)
		cin>>k[i];
	dfs(a,0);
	cout<<(dis[b]==0x3f3f3f3f?-1:dis[b]);
	return 0;
}