Submission #1241099

#TimeUsernameProblemLanguageResultExecution timeMemory
1241099aminabouakazCircle Passing (EGOI24_circlepassing)C++20
20 / 100
2092 ms12204 KiB
#include <bits/stdc++.h> using namespace std; vector<int> adj[200005]; int bfs(int x, int y, int n) { vector<int> d(n, -1); queue<int> q; d[x] = 0; q.push(x); while (!q.empty()) { int u = q.front(); q.pop(); for (int v : adj[u]) { if (d[v] == -1) { d[v] = d[u] + 1; if (v == y) return d[v]; q.push(v); } } } return -1; } int main() { ios::sync_with_stdio(0); cin.tie(0); int N, M, Q; cin >> N >> M >> Q; int T = 2 * N; for (int i = 0; i < T; ++i) { adj[i].push_back((i + 1) % T); adj[i].push_back((i - 1 + T) % T); } for (int i = 0, k; i < M; ++i) { cin >> k; adj[k].push_back(k + N); adj[k + N].push_back(k); } while (Q--) { int x, y; cin >> x >> y; cout << bfs(x, y, T) << '\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...