Cod sursa(job #1025848)

Utilizator jupanubv92Popescu Marius jupanubv92 Data 10 noiembrie 2013 17:04:41
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
#include <vector>
#include <queue>
#define Nmax 100001

using namespace std;

int viz[Nmax];
vector < int > A[Nmax];
queue < int > Qu;
int n;

void bfs(int x)
{
	ofstream fout("bfs.out");
	viz[x] = 1;
	Qu.push(x);
	while (Qu.size())
	{
		int node = Qu.front();
		Qu.pop();
		vector <int>::iterator it;
		for (it = A[node].begin(); it != A[node].end(); ++it)
			if (!viz[*it])
			{
				viz[*it] = viz[node] + 1;
				Qu.push(*it);
			}
	}

	for (int i = 1; i <= n; ++i)
		fout<<viz[i] - 1<< " ";
}	

int main()
{
	int m, a, s, b;
	ifstream fin("bfs.in");


	fin>>n>>m>>s;

	for (int i = 0; i < m; ++i)
	{
		fin>>a>>b;
		A[a].push_back(b);
	}

	bfs (s);

	return 0;
}