Cod sursa(job #667478)

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

int viz[DN];
queue <int> c;
vector <int> gr[DN];

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