Submission #845165

#TimeUsernameProblemLanguageResultExecution timeMemory
845165vjudge1Birmingham (COCI20_birmingham)C++17
70 / 70
98 ms9812 KiB
/**
 *  author: kututay
 *  created: 06.09.2023 15:06:26
**/
#include <bits/stdc++.h>
using namespace std;

#ifdef DEBUG
  #include "/Users/kutay/CP/templates/debug.h"
#else
  #define debug(...) void(38)
#endif

const int inf = 1e9;

int32_t main() {
  ios_base::sync_with_stdio(0); cin.tie(0);
  int n, m, qu, k; cin >> n >> m >> qu >> k;
  vector<int> a(qu), ans(n, inf); for (int &x : a) cin >> x, x--;
  vector<vector<int>> g(n);
  for (int i = 0; i < m; i++) {
    int x, y; cin >> x >> y, x--, y--;
    g[x].emplace_back(y);
    g[y].emplace_back(x);
  }

  queue<pair<int, int>> q;
  for (int x : a) {
    q.emplace(x, 0);
  }

  while (q.size()) {
    auto [node, depth] = q.front();
    q.pop();
    if (ans[node] != inf) continue;
    ans[node] = round(sqrt(ceil(depth * 2.0 / k)));
    for (auto next : g[node]) {
      q.emplace(next, depth + 1);
    }
  }
  for (int &x : ans) cout << x << " ";
  cout << '\n';
}
#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...