Submission #885188

#TimeUsernameProblemLanguageResultExecution timeMemory
885188vjudge1Birmingham (COCI20_birmingham)C++17
0 / 70
74 ms12620 KiB
#include <bits/stdc++.h> #define int long long #define pb push_back #define endl '\n' using namespace std; const int N = 1e5 + 5; int n,m,p,k,dist[N]; vector<int> g[N]; queue<int> q; bool vis[N]; void bfs(){ while(!q.empty()){ int x=q.front(); q.pop(); vis[x]=true; for(auto go: g[x]){ if(vis[go]) continue; dist[go]=dist[x]+1; vis[go]=true; q.push(go); //cout<<go<<" from "<<x<<" with "<<dist[go]<<endl; } } } void solve(){ cin>>n>>m>>p>>k; for(int i=0;i<p;i++){ int x; cin>>x; q.push(x); } for(int i=0;i<m;i++){ int a,b; cin>>a>>b; g[a].pb(b); g[b].pb(a); } vector<int> vec; bfs(); for(int i=0;i<=2e5+3;i++) vec.pb(i*(i+1)*k/2); for(int i=1;i<=n;i++){ auto it=lower_bound(vec.begin(),vec.end(),dist[i]); cout<<it-vec.begin()<<" "; } } int32_t main(){ cin.tie(0)->sync_with_stdio(false); solve(); 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...