Cod sursa(job #664160)

Utilizator andreea1coolBobu Andreea andreea1cool Data 19 ianuarie 2012 18:56:47
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<cstdio>
#include<vector>
using namespace std;
int n,m,s,i,x,y,cost[100010],cd[100010];
vector <int> G[100010];

int bsf(int nod)
{
	int i,j;
	cd[0]=1;
	cost[nod]=0;
	cd[1]=nod;
	for(i=1;i<=cd[0];i++)
		for(j=0;j<G[cd[i]].size();j++)
			if(cost[G[cd[i]][j]]==-1)
			{
				cd[++cd[0]]=G[cd[i]][j];
				cost[G[cd[i]][j]]=cost[cd[i]]+1;
			}
}
	
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);
		G[x].push_back(y);
	}
	memset(cost,-1,sizeof(cost));
	bsf(s);
	for(i=1;i<=n;i++)
		printf("%d ",cost[i]);
	return 0;
}