3 solutions
-
0
#include<bits/stdc++.h> using namespace std; const int N=210; int dist[N]; int dx[N]; int dy[N]; int n,A,B; int bfs(int x) { list<int> q; q.push_back(x); dist[q]=0; while(dist.size()) { int t=dy.front(); dy.pop(); if(q==A) { return dist[B]; } for(int i=0;i<2;i++) { int a=t+dx[t]*dy[i]; if(a<0||a>n) break; if(dist[a]!=0x3f3f3f) break; dy[a]=dy[t]+1; q.push(dx[i]); } } return -1; } int main() { cin>>n>>A>>B; for(int i=1;i<=n;i++) { cin>>dy[i]; } cout<<bfs(n); return 0; }
Information
- ID
- 221
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 3
- Tags
- # Submissions
- 65
- Accepted
- 13
- Uploaded By