Submission #710100

#TimeUsernameProblemLanguageResultExecution timeMemory
710100sleepntsheepBirmingham (COCI20_birmingham)C++17
70 / 70
112 ms10388 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; #define N 100005 int n, m, q, k, d[N]; vector<int> g[N]; vector<int> st; int main() { memset(d, 63, sizeof d); cin.tie(0); ios::sync_with_stdio(0); cin >> n >> m >> q >> k; for (ll i = k, x = 0; x < 1e7; x += i, i += k) { st.push_back(x); } priority_queue<pair<int, int>> Q; for (int i = 0, x; i < q; i++) { cin >> x; Q.emplace(0, x); d[x] = 0; } for (int i = 0, u, v; i < m; i++) { cin >> u >> v; g[u].push_back(v); g[v].push_back(u); } while (Q.size()) { auto [c, u] = Q.top(); Q.pop(); c = -c; if (d[u] != c) continue; for (auto v : g[u]) { if (c + 1 < d[v]) { d[v] = d[u]+1; Q.emplace(-d[v], v); } } } for (int i = 1; i <= n; i++) { auto it = lower_bound(st.begin(), st.end(), d[i]) - st.begin(); cout << it << ' '; } 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...
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...