제출 #1228981

#제출 시각아이디문제언어결과실행 시간메모리
1228981Rokas159Circle Passing (EGOI24_circlepassing)C++20
0 / 100
2 ms328 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define endl '\n' int n, m, Q; vector<vector<int>> adj; signed main() { cin.tie(nullptr); cout.tie(nullptr); ios_base::sync_with_stdio(false); cin >> n >> m >> Q; adj.resize(2*n); for (int i = 0; i < m; i++) { int k; cin >> k; adj[k].push_back((k+n)%(2*n)); adj[(k+n)%(2*n)].push_back(k); } for (int i = 0; i < 2*n; i++) { adj[i].push_back((i+1)%(2*n)); adj[(i+1)%(2*n)].push_back(i); } int dist[2*n]; vector<bool> vis(2*n, false); queue<int> q; q.push(0); dist[0] = 0; while (!q.empty()) { int s = q.front(); q.pop(); vis[s] = true; for (int u : adj[s]) { if (!vis[u]) { dist[u] = dist[s] + 1; vis[u] = true; q.push(u); } } } for (int i = 0; i < Q; i++) { int a, b; cin >> a >> b; cout << dist[b] << endl; } cout.flush(); 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...