#include<bits/stdc++.h> using namespace std; struct { int p,step; } q[250]; int front,rear; bool b[250]; int n,x,y,k[250]; void push(int x,int s) { q[rear].p=x; q[rear].step=s; rear++; b[x]=true; } int main() { cin>>n>>x>>y; for(int i=1;i<=n;++i) cin>>k[i]; if(x==y) cout<<0; else { push(x,0); while(front!=rear) { int t=q[front].p; if(t+k[t]<=n&&!b[t+k[t]]) { push(t+k[t],q[front].step+1); if(t+k[t]==y) break; } if(t-k[t]>0&&!b[t-k[t]]) { push(t-k[t],q[front].step+1); if(t-k[t]==y) break; } front++; } if(front!=rear) cout<<q[rear-1].step; else cout<<-1; } }
原文链接: https://www.cnblogs.com/ghost79/p/12241933.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/325978
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!