Submission #599056

#TimeUsernameProblemLanguageResultExecution timeMemory
599056SlavicGEvent Hopping (BOI22_events)C++17
10 / 100
1596 ms128276 KiB
#include "bits/stdc++.h" using namespace std; const int N = 5001; int dist[N][N]; vector<int> adj[N]; void bfs(int start) { queue<int> q; q.push(start); while(!q.empty()) { int u = q.front(); q.pop(); for(int v: adj[u]) { if(dist[start][v] == -1) { dist[start][v] = dist[start][u] + 1; q.push(v); } } } } int main() { for(int i = 0; i < N; ++i) for(int j = 0; j < N; ++j) dist[i][j] = (i == j ? 0 : -1); int n, q; cin >> n >> q; vector<int> l(n), r(n); 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(i == j) continue; if(r[i] >= l[j] && r[i] <= r[j]) { adj[i].push_back(j); } } } for(int i = 0; i < n; ++i) bfs(i); while(q--) { int a, b; cin >> a >> b; --a, --b; if(dist[a][b] == -1) 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...