Cod sursa(job #398642)

Utilizator Ancuta_Razvanpastila ucigasa Ancuta_Razvan Data 19 februarie 2010 08:53:21
Problema BFS - Parcurgere in latime Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <iostream.h>
#include <fstream.h>

#define DIM 1001

int c[DIM];
char v[DIM];
int D[DIM];
char a[DIM][DIM];

int n,m,i,u,p,x,s,y;

ifstream f("bfs.in");
ofstream g("bfs.out");

int main(){
	f>>n>>m>>s;
	for (i=1;i<=m;i++) {
		f>>x>>y;
		a[x][y] = 1;
	}
	
	c[1] = s;
	v[s] = 1;
	u = p = 1;
	while (p<=u){
		for (i=1;i<=n;i++)
			if (a[c[p]][i] == 1 && v[i]==0) {
				u++;
				c[u] = i;
				v[i] = 1;
				D[i] = D[c[p]]+1;
			}
		p++;
	}
	
	for(i=1;i<=n;i++)
		if (v[i] == 0)
			g<<-1<<" ";
		else 
			g<<D[i]<<" ";
	
	f.close();
	g.close();
	
	return 0;
}