Pagini recente » Cod sursa (job #2319444) | Cod sursa (job #3154338) | Cod sursa (job #78563) | Cod sursa (job #2362381) | Cod sursa (job #1322902)
#include <iostream>
#include <cstdio>
#include <vector>
#include <queue>
#define MAXN 100005
using namespace std;
int n, m, s;
vector<int> a[MAXN];
int pasi[MAXN];
queue<int> q;
void parcurg()
{
int crt, nou;
q.push(s);
pasi[s] = 1;
while (!q.empty())
{
crt = q.front();
q.pop();
for (int i = 0; i < a[crt].size(); i++)
if (pasi[a[crt][i]] == 0)
{
pasi[a[crt][i]] = pasi[crt] + 1;
q.push(a[crt][i]);
}
}
}
int main()
{
freopen("bfs.in", "r", stdin);
freopen("bfs.out", "w", stdout);
int t1,t2;
scanf("%d %d %d", &n, &m, &s);
for (int i = 1; i <= m; i++)
{
scanf("%d %d", &t1, &t2);
a[t1].push_back(t2);
}
parcurg();
for (int i = 1; i <= n; i++)
printf("%d ", pasi[i]-1);
return 0;
}