Pagini recente » Cod sursa (job #2972177) | Cod sursa (job #1681762) | Cod sursa (job #1384888) | Cod sursa (job #490113) | Cod sursa (job #2972086)
#include <fstream>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int n, m, X, a[2][200001], start[100001], c[100001], d[100001];
void bfs(int nod)
{
int x, ps = 1, pi = 1;
d[nod] = 1;
c[ps] = nod;
while (ps <= pi) {
x = start[c[ps]];
while (x) {
if (d[a[0][x]] == 0) {
c[++pi] = a[0][x];
d[a[0][x]] = d[c[ps]] + 1;
}
x = a[1][x];
}
ps++;
}
}
int main()
{
int i, x, y;
fin >> n >> m >> X;
for (i = 1; i <= m; i++) {
fin >> x >> y;
a[0][i] = y;
a[1][i] = start[x];
start[x] = i;
}
bfs(X);
for (i = 1; i <= n; i++)
fout << d[i] - 1 << " ";
return 0;
}