제출 #867707

#제출 시각아이디문제언어결과실행 시간메모리
867707TAhmed33Event Hopping (BOI22_events)C++98
10 / 100
1587 ms33872 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN = 1e5 + 25; vector <int> adj[MAXN]; pair <int, int> arr[MAXN]; int main () { 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); } } } while (q--) { int a, b; cin >> a >> b; int dist[MAXN]; for (int i = 1; i <= n; i++) { dist[i] = 1e8; } dist[a] = 0; queue <int> cur; cur.push(a); while (!cur.empty()) { auto k = cur.front(); cur.pop(); for (auto j : adj[k]) { if (dist[j] > dist[k] + 1) { dist[j] = dist[k] + 1; cur.push(j); } } } if (dist[b] > n) { cout << "impossible\n"; } else { cout << dist[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...