Cod sursa(job #359149)

Utilizator allynaAlina S allyna Data 25 octombrie 2009 21:02:01
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<vector>
using namespace std;
int n,m,s,i,x,y;
int u[100003];
vector<int> a[100003];

void bfs()
{
	int c[100003],in=1,sf=1,i,l,j;
	c[1]=s;
	u[s]=1;
	while(in<=sf)
	{
		l=a[c[in]].size();
		for(i=0;i<l;i++)
			if(!u[a[c[in]][i]])
			{
				j=a[c[in]][i];
				u[j]=u[c[in]]+1;
				c[++sf]=j;
			}
		in++;
	}
}

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",&x,&y);
		a[x].push_back(y);
	}
	bfs();
	for(i=1;i<=n;i++)
		printf("%d ",u[i]-1);
	return 0;
}