Submission #845118

#TimeUsernameProblemLanguageResultExecution timeMemory
845118vjudge1Birmingham (COCI20_birmingham)C++17
70 / 70
233 ms8828 KiB
#include<bits/stdc++.h> using namespace std; using ll = long long; #define pb push_back #define CDIV(a,b) (((a)+(b)-(1))/(b)) int mod_(int a, int b) { if(a >= 0)return a % b; a += (-a/b + 1) * b; return a % b; } int k; ll c(ll x) { return k * x * (x + 1) / 2; } ll calc(ll x) { int l = 1, r = 10; while(l <= r) { int m = (l + r)/2; if(c(m) >= x)r = m - 1; else l = m + 1; } return l; } void solve() { int n, m, f; cin >> n >> m >> f >> k; vector<int> g[n + 1]; vector<int>dist(n + 1, INT32_MAX); queue<array<int, 2> >q; vector<bool>vis(n + 1); while(f--) { int u; cin >> u; q.push({u, 0}); } for(int i = 0; i < m; ++i) { int u, v; cin >> u >> v; g[u].pb(v); g[v].pb(u); } while(!q.empty()) { int node = q.front()[0], d = q.front()[1]; //cerr << node << endl; q.pop(); dist[node] = min(d, dist[node]); if(vis[node])continue; vis[node] = true; for(int next : g[node]) { if(!vis[next]) q.push({next, d + 1}); } } for(int i = 1; i <= n; ++i) { if(dist[i]) { //cout << i << ' ' << dist[i] << ' '; cout << calc(dist[i]) << endl; } else cout << 0 << endl; } } int main() { //fio; //int t; cin >> t; while(t--) { solve(); } }
#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...