Pagini recente » Cod sursa (job #3292727) | Cod sursa (job #1433610) | Cod sursa (job #1210256) | Cod sursa (job #2358243) | Cod sursa (job #3235499)
#include <bits/stdc++.h>
#define int long long
using namespace std;
ifstream fin("test.in");
ofstream fout("test.out");
signed main() {
int n, m, s;
fin >> n >> m >> s;
vector<vector<int>> graph(n + 1);
vector<int> d(n + 1, -1);
vector<bool> visited(n, false);
queue<int> nodes;
for (int i = 0; i < m; ++i) {
int x, y;
fin >> x >> y;
graph[x].push_back(y);
}
nodes.push(s);
visited[s] = true;
d[s] = 0;
while (!nodes.empty()) {
int current = nodes.front();
nodes.pop();
for (int node : graph[current]) {
if (!visited[node]) {
nodes.push(node);
visited[node] = true;
d[node] = d[current] + 1;
}
}
}
for (int distance : d) {
fout << distance << " ";
}
return 0;
}