Cod sursa(job #668060)

Utilizator micutuzBalog Adrian micutuz Data 24 ianuarie 2012 11:24:31
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include<iostream>
#include<fstream>
#include<vector>
#include<queue>
#define DN 100005
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");

int viz[DN], m, n, s;
queue <int> c;
vector <int> gr[DN];

int main()
{
	int i, a,b;
	fin>>m>>n>>s;
	
	for(i=1;i<=m;i++)
	{
	 	fin>>a>>b;
		gr[a].push_back(b);
	}
	for(i=1;i<=n;i++)
		viz[i]=-1;
	viz[s]=0;
	for(c.push(s);c.size();c.pop())
	{
		int y=c.front();
		for(i=0;i<gr[y].size();i++)
		{
			int fiu=gr[y][i];
			if(-1==viz[fiu])
			{
				viz[fiu]=viz[y]+1;
				c.push(fiu);
			}
		}
	}
	for(i=1;i<=n;i++)
		fout<<viz[i]<<" ";
	
}