Pagini recente » Cod sursa (job #2045563) | Cod sursa (job #2030191) | Cod sursa (job #2896247) | Cod sursa (job #2045176) | Cod sursa (job #2972090)
#include <fstream>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int n, m, X, a[2][100005], start[100005], c[100005], d[100005];
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;
}