Cod sursa(job #705972)

Utilizator valiro21Valentin Rosca valiro21 Data 5 martie 2012 11:51:22
Problema BFS - Parcurgere in latime Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include<cstdio>
#include<vector>
#include<cstring>
using namespace std;
vector<long> a[10001];
long c[10001],lg[10001],m,s,i,v,b,n;
void bfs(int x)
{
	long z=a[x].size();
	for(long i=0;i<z;i++)
	{
		if(lg[a[x][i]]==-1)
		{
			lg[a[x][i]]=lg[x]+1;
			bfs(a[x][i]);
		}
	}
}
int main()
{
	freopen("bfs.in","rt",stdin);
	freopen("bfs.out","wt",stdout);
	scanf("%ld%ld%ld",&n,&m,&s);
	for(i=1;i<=m;i++)
	{
		scanf("%ld%ld",&v,&b);
		a[v].push_back(b);
	}
	memset(lg,-1,sizeof(lg));
	lg[s]=0;
		bfs(s);
	for(i=1;i<=n;i++)
		printf("%ld ",lg[i]);
	return 0;
}