Pagini recente » Cod sursa (job #1958384) | Cod sursa (job #2463467) | Cod sursa (job #2347707) | Cod sursa (job #1375533) | Cod sursa (job #1403260)
#include <bits/stdc++.h>
#define oo 1<<30
using namespace std;
int d[100005], n, m, s, i, x, y, nod;
vector<int>v[100005];
deque<int>q;
int main()
{
freopen("bfs.in", "r", stdin);
freopen("bfs.out", "w", stdout);
scanf("%d%d%d", &n, &m, &s);
for(; m; m--)
{
scanf("%d%d", &x, &y);
v[x].push_back(y);
}
q.push_back(s);
for(i = 1; i <= n; i++)
d[i] = oo;
d[s] = 0;
while(q.size())
{
nod = q.front();
q.pop_front();
for(auto it : v[nod])
if(d[it] == oo)
{
d[it] = d[nod] + 1;
q.push_back(it);
}
}
for(i = 1; i <= n; i++)
d[i] == oo ? printf("-1 ") : printf("%d ", d[i]);
return 0;
}