Pagini recente » Cod sursa (job #3131411) | Cod sursa (job #469671) | Cod sursa (job #228574) | Cod sursa (job #327481) | Cod sursa (job #3296188)
#include <bits/stdc++.h>
using namespace std;
#define MAXN 100000
vector<int> v[MAXN + 1];
int f[MAXN + 1];
int deq[MAXN + 1];
int main()
{
FILE *fin, *fout;
int n, m, i, x, y, pr, ul, nr, nod;
fin = fopen("bfs.in", "r");
fscanf(fin, "%d%d%d", &n, &m, &nod);
for (i = 0; i < m; i++) {
fscanf(fin, "%d%d", &x, &y);
v[x].push_back(y);
}
fclose(fin);
pr = 0;
deq[0] = nod;
ul = f[nod] = 1;
while (pr != ul) {
x = deq[pr];
nr = v[x].size();
for (i = 0; i < nr; i++) {
y = v[x][i];
if (f[y] == 0) {
deq[ul] = y;
ul++;
f[y] = f[x] + 1;
}
}
pr++;
}
fout = fopen("bfs.out", "w");
for (i = 1; i <= n; i++) {
fprintf(fout, "%d ", f[i] - 1);
}
fclose(fout);
return 0;
}