Cod sursa(job #604980)

Utilizator okros_alexandruOkros Alexandru okros_alexandru Data 26 iulie 2011 14:26:55
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include<fstream>
#include<vector>
using namespace std;
vector <int> v[100100];
int coada[100100],sol[100100],n,s;
void citire()
{
	int m,i,x,y;
	ifstream in("bfs.in");
	in>>n>>m>>s;
	for(i=0;i<m;i++)
		{in>>x>>y;
		v[x].push_back(y);
		}
	in.close();
}
int main()
{
	int i,m,nr,j,nod;
	citire();
	for(i=1;i<=n;sol[i]=-1,i++);
	coada[0]=s;nr=1;
	sol[s]=0;
	for(i=0;i<nr;i++)
		{nod=coada[i];
		m=v[nod].size();
		for(j=0;j<m;j++)
			if(sol[v[nod][j]]==-1)
				{coada[nr++]=v[nod][j];
				sol[v[nod][j]]=sol[nod]+1;
				}
		}
	ofstream out("bfs.out");
	for(i=1;i<=n;i++)
		out<<sol[i]<<" ";
	out<<'\n';
	out.close();
	return 0;
}