Cod sursa(job #1039516)

Utilizator L.DanielLungu Daniel L.Daniel Data 23 noiembrie 2013 10:49:31
Problema BFS - Parcurgere in latime Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
using namespace std;
int a[1000][1000], viz[1000];
int main()
{
	fstream f("bfs.in", ios::in);
	fstream g("bfs.out",ios::out);
	int i, m, n, st, dr, nod, x, y, s, coad[1000], dist[1000];
	f >> n >> m >> s;
	for (i = 1; i <= m; i++)
	{
		f >> x >> y;
		a[x][y] = 1;
	}
	st = 1;
	dr = 1;
	coad[st] = s;
	viz[s] = 1;
	dist[s] = 0;
	while (st <= dr)
	{
		nod = coad[st];
		st++;
		for (i = 1; i <= n; i++)
		if (a[nod][i] == 1 && viz[i] == 0)
		{
			coad[++dr] = i;
			viz[i] = 1;
			dist[i] = dist[nod] + 1;
		}

	}
	for (i = 1; i <= n; i++)
	if (dist[i] < 0)g << -1 << " ";
	else	g << dist[i] << " ";
	return 0;
}