//
// 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(loc[0], dis);
lp(i, 0, n) { cout << dis[i] << '\n'; }
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |