Submission #1216217

#TimeUsernameProblemLanguageResultExecution timeMemory
1216217Ghulam_JunaidEvent Hopping (BOI22_events)C++20
0 / 100
1517 ms18528 KiB
#include <bits/stdc++.h> using namespace std; const int N = 1e5 + 10, LG = 18; int n, que, par[N][LG], a[N][2], dist[5005][5005], edge[5005][5005]; vector<pair<pair<int, int>, int>> vec; vector<int> g[N]; int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> que; for (int i = 0; i < n; i ++){ int s, e; cin >> s >> e; a[i][0] = s, a[i][1] = e; // vec.push_back({{s, 0}, i}); // vec.push_back({{e, 1}, i}); } // sort(vec.begin(), vec.end()); for (int i = 0; i < n; i ++){ for (int j = 0; j < n; j ++){ if (i == j) continue; if (a[i][0] <= a[j][1] and a[j][1] <= a[i][1]) edge[j][i] = 1; } } queue<int> q; for (int s = 0; s < n; s ++){ dist[s][s] = 1; q.push(s); while (!q.empty()){ int v = q.front(); q.pop(); for (int u = 0; u < n; u ++){ if (!edge[v][u]) continue; if (dist[s][u] == 0){ dist[s][u] = dist[s][v] + 1; q.push(u); } } } } for (int id = 0; id < que; id ++){ int l, r; cin >> l >> r; l--; r--; if (dist[l][r] == 0) cout << "impossible\n"; else cout << dist[l][r] - 1 << '\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...