Pagini recente » Cod sursa (job #1290784) | Cod sursa (job #2226090) | Cod sursa (job #1774524) | Cod sursa (job #1556554) | Cod sursa (job #352476)
Cod sursa(job #352476)
#include<stdio.h>
int i, n, m, s, p, u, x, y;
int a[10000][10000], c[100000], v[100000];
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;
}