Cod sursa(job #591892)

Utilizator vladtarniceruVlad Tarniceru vladtarniceru Data 25 mai 2011 20:23:53
Problema BFS - Parcurgere in latime Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
# include <fstream>
# include <vector>
using namespace std;

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

vector <int> v[100010];
int n, m, S, i, x, y, sol[100010], abc;

void make (int S, int pasi){
	sol[S] = pasi + 1;
	int siz = v[S].size ();
	for (int k = 0; k < siz; ++k){
		int val = v[S][k];
		if (!sol[val])
			make (val, pasi + 1);
	}
}
int main (){
	f >> n >> m >> S;
	abc = 1;
	
	for (i = 1; i <= m; ++i){
		f >> x >> y;
		if (x == S && y == S) abc = 0;
		v[x].push_back (y);
	}
	
	make (S, 0);
	
	sol[S] -= abc;
	for (i = 1; i <= n; ++i)
		g << sol[i] - 1 << ' ';
	
	g.close ();
	return 0;
}