Pagini recente » Cod sursa (job #1769970) | Cod sursa (job #2122214) | Cod sursa (job #2074225) | Cod sursa (job #1539545) | Cod sursa (job #638761)
Cod sursa(job #638761)
#include <stdio.h>
#include <vector>
#define DIM 100002
using namespace std;
vector<int> L[DIM];
int C[DIM];
int X[DIM];
char V[DIM];
int D[DIM];
int p, u, i, N, M, S, x, y;
int main() {
FILE *f = fopen("bfs.in","r");
FILE *g = fopen("bfs.out","w");
fscanf(f,"%d %d %d",&N, &M, &S);
for (i=1;i<=M;i++) {
fscanf(f,"%d %d",&x, &y);
L[x].push_back(y);
}
fclose(f);
for (i=1;i<=N;i++) {
D[i] = L[i].size();
}
C[1] = S;
p = u = 1;
V[S] = 1;
while (p<=u) {
for (i=0;i<D[C[p]];i++) {
if (!V[L[C[p]][i]]) {
C[++u] = L[C[p]][i];
V[L[C[p]][i]] = 1;
X[L[C[p]][i]] = X[C[p]] + 1;
}
}
p++;
}
for (i=1;i<=N;i++) {
if (!V[i]) {
fprintf(g,"%d ",-1);
} else {
fprintf(g,"%d ",X[i]);
}
}
fclose(g);
return 0;
}