Cod sursa(job #833277)

Utilizator mariacMaria Constantin mariac Data 12 decembrie 2012 10:46:07
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<fstream>
#include<vector>

using namespace std;


ifstream fin("bfs.in");
ofstream fout("bfs.out");
int v[100001];
vector <int> lv[100005];

int n,m,s;
int q[100005];

int main()
{
	int i;
	
	fin>>n;
	fin>>m;
	fin>>s;
	
	for(i=1;i<=m;i++)
	{	
		int x,y;
		fin>>x>>y;
		lv[x].push_back(y);
	}

	int u,p;
	u=1;
	q[u]=s;
	v[s]=1;
	p=0;
	while(p<u)
	{	p++;
		for(i=0;i<lv[q[p]].size();i++)
			if(!v[lv[q[p]][i]]){v[lv[q[p]][i]]=v[q[p]]+1;
		                       q[++u]=lv[q[p]][i];
							  }
	}
	
	for(i=1;i<=n;i++)
		fout<<v[i]-1<<" ";
}