Pagini recente » Cod sursa (job #2618586) | Cod sursa (job #3281984) | Cod sursa (job #1847205) | Cod sursa (job #2173198) | Cod sursa (job #2461596)
#include <bits/stdc++.h>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
queue<int> q;
int main()
{
int n, k, t;
f >> n >> k >> t;
vector<int> v[n + 1];
int rez[n + 1];
memset(rez, 0, sizeof rez);
for (int a, b; k; k--)
{
f >> a >> b;
if (a != b)
v[a].push_back(b);
}
rez[t] = 1;
q.push(t);
while (!q.empty())
{
int p = q.front();
q.pop();
for (auto i : v[p])
if (!rez[i])
{
rez[i] = rez[p] + 1;
q.push(i);
}
}
for (int i = 1; i <= n; i++)
g << rez[i] - 1 << " ";
return 0;
}