Pagini recente » Cod sursa (job #451311) | Cod sursa (job #1176624) | Cod sursa (job #2485195) | Cod sursa (job #2223436) | Cod sursa (job #3260659)
#include <fstream>
#include <vector>
#define MAXN 100010
using namespace std;
ifstream cin("bfs.in");
ofstream cout("bfs.out");
vector<int> L[MAXN];
int c[MAXN], d[MAXN];
int n, m, s;
int main()
{
cin >> n >> m >> s;
int x, y;
for (int i = 1; i <= m; i++)
{
cin >> x >> y;
L[x].push_back(y);
}
int p = 1;
int u = 1;
int nod;
c[1] = s;
d[s] = 1;
while (p <= u) {
nod = c[p];
for (int i = 0; i < L[nod].size(); i++)
{
int vecin = L[nod][i];
if (d[vecin] == 0) {
u++;
c[u] = vecin;
d[vecin] = 1 + d[nod];
}
}
p++;
}
for(int i = 1; i <= n; i++)
cout << d[i] - 1 << ' ';
return 0;
}