H
2024-04-07 20:29:23
发布于:北京
15阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
const int maxn=2e2+9;
int d[maxn],k[maxn];
int main(){
int N,A,B;
cin>>N>>A>>B;
for(int i=1;i<=N;i++)cin>>k[i];
memset(d,-1,sizeof(d));
d[A]=0;
queue<int> q;
q.push(A);
while(q.size()) {
int r=q.front();
q.pop();
if (r+k[r]<=N&&d[r+k[r]]==-1) {
d[r+k[r]]=d[r]+1;
q.push(r+k[r]);
}
if (r-k[r] >=1&&d[r-k[r]]==-1) {
d[r-k[r]]=d[r]+1;
q.push(r-k[r]);
}
}
cout<<d[B];
return 0;
}
这里空空如也
有帮助,赞一个