Submission #738086

#TimeUsernameProblemLanguageResultExecution timeMemory
738086DAleksaEvent Hopping (BOI22_events)C++17
0 / 100
1569 ms3464 KiB
#include <bits/stdc++.h> using namespace std; const int N = 5010; vector<int> g[N]; int n, q; int l[N], r[N]; int dist[N]; bool mark[N]; int main() { ios_base::sync_with_stdio(false); cin.tie(0); cin >> n >> q; for(int i = 0; i < n; i++) cin >> l[i] >> r[i]; for(int i = 0; i < n; i++) for(int j = 0; j < n; j++) if(l[j] <= r[i] && r[i] <= r[j]) g[i].push_back(j); while(q--) { int x, y; cin >> x >> y; x--; y--; for(int i = 0; i < n; i++) { dist[i] = 1e9; mark[i] = false; } dist[x] = 0; queue<int> q; q.push(x); while(!q.empty()) { int u = q.front(); q.pop(); mark[u] = true; for(int v : g[u]) { if(mark[v]) continue; q.push(v); dist[v] = min(dist[v], dist[u] + 1); } } if(dist[y] == 1e9) cout << "impossible\n"; else cout << dist[y] << "\n"; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...