Cod sursa(job #358978)

Utilizator GheorgheMihaiMihai Gheorghe GheorgheMihai Data 25 octombrie 2009 12:29:26
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include<stdio.h>
#include<vector>
using namespace std;
int n,m,s;
int d[100003];
vector<int> v[100003];

void lee()
{
	int q[100003],p=1,u=1,i,lim,j;
	q[1]=s;
	d[s]=1;
	while(p<=u)
	{
		lim=v[q[p]].size();
		for(i=0;i<lim;i++)
			if(!d[v[q[p]][i]])
			{
				j=v[q[p]][i];
				d[j]=d[q[p]]+1;
				q[++u]=j;
			}
		p++;
	}
}

int main()
{
	freopen("bfs.in","r",stdin);
	freopen("bfs.out","w",stdout);
	scanf("%d%d%d",&n,&m,&s);
	int i,x,y;
	for(i=1;i<=m;i++)
	{
		scanf("%d%d",&x,&y);
		v[x].push_back(y);
	}
	lee();
	for(i=1;i<=n;i++)
		printf("%d ",d[i]-1);
	return 0;
}