Cod sursa(job #437161)

Utilizator OdinSandu Bogdan-Mihai Odin Data 9 aprilie 2010 14:02:50
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include<stdio.h>
#include<vector>
#define NM 100005
using namespace std;
vector <int> G[NM];
int S[NM],n1,n2,n,m,s,viz[NM],i,k,N,j;
int main()
{
	freopen("bfs.in","r",stdin);
	freopen("bfs.out","w",stdout);
	scanf("%d%d%d",&n,&m,&s);
	for(i=1;i<=m;i++)
	{
		scanf("%d%d",&n1,&n2);
		G[n1].push_back(n2);
	}
	for(i=1;i<=n;i++)
		viz[i]=-1;
	S[0]=s;
	viz[s]=0;
	for(i=0;i<=k;i++)
	{
		N=G[S[i]].size();
		for(j=0;j<N;j++)
		{
			if(viz[ G[ S[i] ][j] ]<0)
			{
				S[++k]=G[ S[i] ][j];
				viz[ G[ S[i] ][j] ]=viz[S[i]]+1;
			}
		}
	}
	for(i=1;i<=n;i++)
		printf("%d ",viz[i]);
	return 0;
}