Cod sursa(job #755328)

Utilizator roxyroxy2011Luca Roxana roxyroxy2011 Data 5 iunie 2012 14:34:55
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>
#include <vector>
#include <queue>

using namespace std;

ifstream f("bfs.in");
ofstream g("bfs.out");

vector<int> a[100001];
int p,n,m;

void read();
void solve();

int main()
{
	read();
	solve();
	f.close();g.close();
	return 0;
}

void read()
{
	f>>n>>m>>p;
	for (int i=1;i<=m;i++)
	{
		int l,c;f>>l>>c;
		a[l].push_back(c);
	}
}

void solve()
{
	queue <int> que;int viz[100001]={0};
	que.push(p);viz[p]=1;
	while (!que.empty())
	{
		int aux=que.front(); que.pop();
		for (int i=0;i<a[aux].size();i++)
			if (!viz[a[aux][i]] )
			{
				viz[a[aux][i]]=viz[aux]+1;
				que.push(a[aux][i]);
			}
	}
	for (int i=1;i<=n;i++)
		g<<viz[i]-1<<' ';
}