Submission #867709

#TimeUsernameProblemLanguageResultExecution timeMemory
867709TAhmed33Event Hopping (BOI22_events)C++98
10 / 100
1541 ms41084 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN = 5e3 + 25; vector <int> adj[MAXN]; pair <int, int> arr[MAXN]; int dist[MAXN][MAXN]; int main () { ios::sync_with_stdio(0); cin.tie(0); int n, q; cin >> n >> q; for (int i = 1; i <= n; i++) { int l, r; cin >> l >> r; arr[i] = {l, r}; } for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { if (i == j) continue; if (arr[i].second >= arr[j].first && arr[i].second <= arr[j].second) { adj[i].push_back(j); } } } for (int a = 1; a <= n; a++) { for (int i = 1; i <= n; i++) { dist[a][i] = 1e8; } dist[a][a] = 0; queue <int> cur; cur.push(a); while (!cur.empty()) { auto k = cur.front(); cur.pop(); for (auto j : adj[k]) { if (dist[a][j] > dist[a][k] + 1) { dist[a][j] = dist[a][k] + 1; cur.push(j); } } } } while (q--) { int a, b; cin >> a >> b; if (dist[a][b] > n) { cout << "impossible\n"; } else { cout << dist[a][b] << '\n'; } } }
#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...