Pagini recente » Rating Miholca Diana-Lucia (Diana_M08) | Cod sursa (job #3293862) | Cod sursa (job #2840123) | Cod sursa (job #3293317)
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e5;
const int MAXM = 1e6;
vector<int> bfs(int s, vector<vector<int>> &g)
{
vector<int> d(g.size(), -1);
queue<int> q;
q.push(s);
d[s] = 0;
int node;
while (!q.empty())
{
node = q.front();
q.pop();
for (auto &x : g[node])
{
if (d[x] == -1 && x != s)
{
q.push(x);
d[x] = d[node] + 1;
}
}
}
return d;
}
int main()
{
freopen("bfs.in", "r", stdin);
freopen("bfs.out", "w", stdout);
cin.tie(nullptr);
cout.tie(nullptr);
ios::sync_with_stdio(false);
int n, m, s;
cin >> n >> m >> s;
vector<vector<int>> g(n + 2);
for (int i = 1; i <= m; ++i)
{
int a, b;
cin >> a >> b;
g[a].push_back(b);
}
auto dists = bfs(s, g);
for (int i = 1; i <= n; ++i)
cout << dists[i] << ' ';
cout << '\n';
return 0;
}