Submission #373070

#TimeUsernameProblemLanguageResultExecution timeMemory
373070NimbostratusBirmingham (COCI20_birmingham)C++17
70 / 70
140 ms13164 KiB
#include <bits/stdc++.h> using namespace std; #define eb emplace_back #define pb push_back #define ppb pop_back #define ub upper_bound #define lb lower_bound #define bs binary_search #define cln(a,s) memset((a),0,sizeof((a)[0])*(s)) #define all(x) (x).begin() , (x).end() #define fi first #define se second #define int int using pii = pair<int,int>; using ll = long long; const int maxn = 2e5 + 5; const int inf = 1e9; const int mod = 1e9+7; vector<int> adj[maxn]; int n,m,qq,k,dist[maxn],src[maxn]; bool vis[maxn]; void bfs() { queue<int> q; for(int i=1;i<=qq;i++) { q.push(src[i]); vis[src[i]] = true; } while(not q.empty()) { int u = q.front(); q.pop(); for(int v : adj[u]) { if(vis[v]) continue; vis[v] = true; dist[v] = dist[u]+1; q.push(v); } } } int root(int x) { ll l = 0 , r = x , mid; while(l < r-1) { mid = (l+r)/2; if(mid*(mid+1)/2*k == x) return mid; else if(mid*(mid+1)/2*k < x) l = mid+1; else r = mid; } if(l*(l+1)/2*k >= x) return l; return r; } int32_t main () { //freopen("in","r",stdin); freopen("out","w",stdout); ios_base::sync_with_stdio(0); cout.tie(0); cin.tie(0); cin >> n >> m >> qq >> k; for(int i=1;i<=qq;i++) cin >> src[i]; while(m--) { int x,y; cin >> x >> y; adj[x].pb(y); adj[y].pb(x); } bfs(); for(int i=1;i<=n;i++) cout << root(dist[i]) << " "; }
#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...