Cod sursa(job #829959)

Utilizator mazaandreiAndrei Mazareanu mazaandrei Data 6 decembrie 2012 09:08:47
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include<deque>
#include<fstream>
#include<vector>
using namespace std;
deque < int > q;
int x,y,n,m,s,acum;
vector  < int > l[100005];
vector < int > nivel(100005,-1);
int viz[100005];
int main(){
	ifstream f("bfs.in"); ofstream g("bfs.out");
	f>>n>>m>>s;
	q.push_back(s); viz[s]=1; nivel[s]=0;
	for(int i=1;i<=m;++i){ f>>x>>y; l[x].push_back(y);}
	while(!q.empty()){
		acum=q.front(); q.pop_front();
		viz[acum]=1;
		for(unsigned int i=0; i<l[acum].size(); ++i){
			if(viz[ l[acum][i] ]==0){
				viz[l[acum][i]]=1;
				nivel[l[acum][i]]=nivel[acum]+1;
				q.push_back(l[acum][i]);
			}
		}
	}
	for(int i=1; i<=n; ++i) g<<nivel[i]<<' ';
	return 0;
}