# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
845103 | 2023-09-06T11:57:34 Z | vjudge1 | Birmingham (COCI20_birmingham) | C++17 | 0 ms | 0 KB |
#include <bits/stdc++.h> using namespace std; #define ll long long #define endl "\n" #define all(aa) aa.begin(), aa.end() int main(){ double k; iny n, m, qq; cin>>n>>m>>qq>>k; queue<pair<int, int>> q; for(int i=0; i<qq; i++){ int a; cin>>a; q.push({a-1, 0}); } vector<vector<int>> g(n); for(int i=0; i<m; i++){ int a, b; cin>>a>>b; a--; b--; g[a].push_back(b); g[b].push_back(a); } vector<int> ans(n, -1); while(q.size()){ auto[v, d]=q.front(); q.pop(); if(ans[v]!=-1) continue; ans[v]=ceil((sqrt(k*k/4+2*k*d)-k/2)/k); for(auto ch:g[v]) if(ans[v]!=-1) q.push({ch, d+1}); } for(auto e:ans) cout<<e<<' '; }