Cod sursa(job #1169211)

Utilizator tudi98Cozma Tudor tudi98 Data 10 aprilie 2014 17:59:08
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <fstream>
#include <vector>
#include <queue>
#define dim 100001
using namespace std;

vector<int> v[dim];
queue <int> Q; 
int n,m,s,i,x,y,dist[dim];
bool viz[dim];

void bfs(){
	for(i=0;i<int(v[x].size());i++)
		if(!viz[v[x][i]]){
			viz[v[x][i]]=1;
			Q.push(v[x][i]);
			dist[v[x][i]]=dist[x]+1;
		}
}

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

	f>>n>>m>>s;
	for(i=1;i<=m;i++){
		f>>x>>y;
		v[x].push_back(y);
	}

	Q.push(s);
	viz[s]=1;
	while(!Q.empty()){
		x=Q.front();
		Q.pop();
		bfs();
	}

	for(i=1;i<=n;i++)
		g<<((viz[i])?dist[i]:-1)<<" ";
}