Submission #845449

#TimeUsernameProblemLanguageResultExecution timeMemory
845449vjudge1Birmingham (COCI20_birmingham)C++17
70 / 70
157 ms8652 KiB
#include <bits/stdc++.h> #define lli long long int #define MP make_pair #define pb push_back #define REP(i,n) for(int (i) = 0; (i) < (n); (i)++) using namespace std; const double EPS = 0.00001; const int INF = 1e9+500; const int N = 1e5+5; int n,m,q,k; vector<int> sec; vector<vector<int> > adj; vector<int> res; vector<int> prec; void bfs() { queue<int> que; vector<int> vis; vis.resize(n+1); for(auto i : sec) { que.push(i); vis[i] = 1; } que.push(-1); int dist = 0; while(que.size() > 1) { int cur = que.front(); que.pop(); if(cur == -1) { dist++; que.push(-1); continue; } //cout<<"cur:"<<cur<<"\n"; //cout<<"dist:"<<dist<<"\n"; res[cur] = prec[dist]; for(auto c : adj[cur]) { if(vis[c]) continue; que.push(c); vis[c] = 1; } } } void solve() { cin>>n>>m>>q>>k; sec.resize(q); res.resize(n+1); adj.resize(n+1); prec.resize(n+100); int ind = 0; int itr = 0; while((ind-1) * (ind) * k / 2 < n+100) { int x = ind * (ind+1) * k/2; while(itr <= x && itr < n+100) { prec[itr] = ind; itr++; } ind++; } for(int i = 0; i<q; i++) { cin>>sec[i]; } for(int i = 0; i<m; i++) { int a,b; cin>>a>>b; adj[a].pb(b); adj[b].pb(a); } bfs(); for(int i = 1; i<=n; i++) { cout<<res[i]<<" "; } } signed main() { int test = 1; //cin>>test; while(test--) { 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...