Pagini recente » Cod sursa (job #558086) | Cod sursa (job #482096) | Cod sursa (job #300842) | Cod sursa (job #1005283) | Cod sursa (job #361411)
Cod sursa(job #361411)
#include<stdio.h>
int i, n, m, s, p, u, x, y;
int a[100010][100010], c[1000010], v[1000010];
FILE * f = fopen("bfs.in", "r");
FILE * g = fopen("bfs.out", "w");
int main (){
fscanf (f, "%d %d %d", &n, &m, &s);
for (i = 1 ; i <= m ; i++) {
fscanf(f, "%d %d", &x, &y);
a[x][y] = 1;
}
p = 1;
u = 2;
c[p] = s;
v[s] = 1;
while (p < u){
for (i = 1 ; i <= n ; i++)
if (a[ c[p] ][ i ] == 1 && v[i] == 0) {
c[u] = i;
v[i] = v[ c[p] ] + 1;
u++;
}
p++;
}
for (i = 1 ; i <= n ; i++)
if (v[i] == 0) fprintf (g, "-1 ");
else fprintf (g, "%d ", v[i] - 1);
fclose(f);
fclose(g);
return 0;
}