Cod sursa(job #1191756)

Utilizator ducu34Albastroiu Radu Gabriel ducu34 Data 28 mai 2014 17:21:55
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int c2[100000],c[100001],viz[100001],zi,u,p,i,x,y,k,n,X,m;
vector <int> v[100001];
int main()
{
	fin>>n>>m>>X;
	for(i=1;i<=m;i++)
	{
		fin>>x>>y;
		v[x].push_back(y);
	}
	p=u=1;
	c[u]=X;
	viz[X]=1;
	while(u<=p)
	{
		for(i=0;i<v[c[u]].size();i++)
		{
			if(!viz[v[c[u]][i]])
			{
				viz[v[c[u]][i]]=viz[c[u]]+1;
				p++;
				c[p]=v[c[u]][i];
			}
		}
		u++;
	}
	for(i=1;i<X;i++)
		if(viz[i]==0)
			fout<<-1<<" ";
		else
			fout<<viz[i]-1<<" ";
	fout<<0<<" ";
	for(i=X+1;i<=n;i++)
		if(viz[i]==0)
			fout<<-1<<" ";
		else
			fout<<viz[i]-1<<" ";
	return 0;
}