Cod sursa(job #649931)

Utilizator BarracudaFMI-Alex Dobrin Barracuda Data 16 decembrie 2011 22:05:05
Problema BFS - Parcurgere in latime Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include<stdio.h>
#define MAX 10003
FILE*f=fopen("bfs.in","r");
FILE*g=fopen("bfs.out","w");
long long n,m,s,A[MAX][MAX],x,y,i,nc,C[MAX],p,u,nd,L[MAX];
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;
	}
	for(i=1;i<=n;i++)
		L[i]=-1;
	L[s]=0;
	C[1]=s;
	p=u=1;
	while(p<=u){
		nd=C[p];
		for(i=1;i<=n;i++){
			if(A[nd][i]==1 && L[i]==-1){
				u++;
				C[u]=i;
				L[i]=L[nd]+1;
			}
		}
		p++;
	}
    for(i=1;i<=n;i++)
		fprintf(g,"%d ",L[i]);
	return 0;
}