Submission #1316865

#TimeUsernameProblemLanguageResultExecution timeMemory
1316865LIABoard Game (JOI24_boardgame)C++17
0 / 100
14 ms4488 KiB
//
// Created by liasa on 29/01/2026.
//
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define v vector
#define lp(i, s, e) for (ll i = s; i < e; ++i)
#define pll pair<ll, ll>
ll n, m, k;
v<v<ll>> g;
v<ll> loc;
v<ll> s;
ll stop_cnt = 0;

void bfs(ll node, v<ll> &dist) {
  dist[node] = 0;
  queue<ll> q;
  q.push(node);
  while (!q.empty()) {
    auto nd = q.front();
    ll dis = dist[nd];
    q.pop();
    for (auto it : g[nd]) {
      if (dist[it] > dis + 1) {
        dist[it] = dis + 1;
        q.push(it);
      }
    }
  }
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cin >> n >> m >> k;
  g.resize(n);
  loc.resize(k);
  s.resize(n);
  lp(i, 0, m) {
    ll a, b;
    cin >> a >> b;
    a--;
    b--;
    g[a].push_back(b);
    g[b].push_back(a);
  }

  string s1;
  cin >> s1;
  lp(i, 0, n) {
    s[i] = (s1[i] == '1');
    if (s[i] == 1)
      stop_cnt++;
  }

  lp(i, 0, k) {
    cin >> loc[i];
    loc[i]--;
  }

  v<ll> dis(n, 1e18);

  bfs(0, dis);

  lp(i, 0, n) { cout << dis[i] << '\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...