Pagini recente » Cod sursa (job #1532127) | Cod sursa (job #1818633) | Cod sursa (job #3216908) | Cod sursa (job #319373) | Cod sursa (job #418506)
Cod sursa(job #418506)
#include <stdio.h>
#include <vector>
using namespace std;
vector <int> a[100050];
int n, m, s, x, y, i, p, u, z;
int C[Nmax], v[100050], lglin[100050], viz[100050];
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);
a[x].push_back(y);
}
for(i=1;i<=n;i++)
lglin[i]=a[i].size();
memset(v, -1, sizeof(v));
C[1]=s;
v[s]=0;
viz[s]=1;
p=1;
u=1;
while(p<=u){
for (i=0;i<lglin[C[p]];i++) {
z = a[C[p]][i];
if (!viz[z]) {
viz[Z]=1;
C[++u]=z;
v[z]=v[C[p]] + 1;
}
}
p++;
}
for (i = 1; i <= n; i++)
fprintf(g,"%d ",v[i]);
fclose(f); fclose(g);
return 0;
}