Cod sursa(job #693884)

Utilizator lazarliviaLazar Livia lazarlivia Data 27 februarie 2012 17:32:08
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<fstream>
#include<vector>
using namespace std;
#define nm 100005
int n, m, s, viz[nm];
vector <int> v[nm];
ifstream f("bfs.in");
ofstream g("bfs.out");
void citire()
{
	int x,y;
	f>>n>>m>>s;
	while(f>>x>>y) v[x].push_back(y);
}
void bfs()
{
	int c[nm],p,u,nod,i;
	for(i=1;i<=n;i++)
		viz[i]=-1;
	p=u=1;
	c[p]=s;
	viz[s]=0;
	while(p<=u)
	{
		nod=c[p];
		p++;
		
		for(i=0;i<v[nod].size();i++)
		{
			
			if(viz[v[nod][i]]==-1)
			{
			u++;
			c[u]=v[nod][i];
			viz[v[nod][i]]=viz[nod]+1;
			}
			
		}
		
	}
			
			
}
int main()
{
	int i;
	citire();
	bfs();
	for(i=1;i<=n;i++)
		g<<viz[i]<<' ';
}