Submission #595657

#TimeUsernameProblemLanguageResultExecution timeMemory
595657pedroslreyEvent Hopping (BOI22_events)C++14
10 / 100
115 ms4436 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN = 1e3 + 10; int ls[MAXN], rs[MAXN], dist[MAXN]; vector<int> graph[MAXN]; bool marc[MAXN]; void bfs(int u, int n) { for (int i = 0; i < n; ++i) { marc[i] = false; dist[i] = 0; } queue<int> q; q.push(u); marc[u] = true; while (!q.empty()) { int u = q.front(); q.pop(); for (int v: graph[u]) if (!marc[v]) { marc[v] = true; dist[v] = dist[u] + 1; q.push(v); } } } int main() { int n, q; cin >> n >> q; for (int i = 0; i < n; ++i) cin >> ls[i] >> rs[i]; for (int i = 0; i < n; ++i) for (int j = 0; j < n; ++j) if (i != j && ls[i] <= rs[j] && rs[j] <= rs[i]) graph[j].push_back(i); for (int i = 0; i < q; ++i) { int a, b; cin >> a >> b; --a; --b; bfs(a, n); if (!marc[b]) 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...