9 条题解
-
1
#include<bits/stdc++.h> using namespace std; const int N = 1e6+10; int q[N]; int k[N]; int a[N]; int b[N]; int main(){ int x,y,n; cin>>n>>x>>y; for(int i=1;i<=n;i++) cin>>k[i]; b[x]=1; q[1]=x; int ll=0;rr=1; do{ ll++; for(int i=-1;i<=1;i+=2){ int newlou=q[ll]+k[q[ll]]*i; if(newlou>0&&newlou<=n&&!b[newlou]){ rr++; q[rr]=newlou; b[newlou]=1; a[rr]=a[ll]+1; } } }while(ll!=rr&&q[ll]!=y); if(x==y)cout<<0<<endl; else if(q[11]==y)cout<<a[ll]<<endl; else cout<<-1<<endl; return 0; }
信息
- ID
- 2
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- 8
- 标签
- 递交数
- 171
- 已通过
- 27
- 上传者