Cod sursa(job #2188935)

Utilizator mihai50000Mihai-Cristian Popescu mihai50000 Data 27 martie 2018 16:13:46
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int n, m, target, x, y;
vector <int> v[100005];
queue <int> coada;
int distanta[100005];
void BFS(int nod)
{
	coada.push(nod);
	distanta[nod] = 1;
	while (!coada.empty())
	{
		int nod = coada.front();
		coada.pop();
		for (int i = 0; i < v[nod].size(); i++)
			if (!distanta[v[nod][i]])
			{
				coada.push(v[nod][i]);
				distanta[v[nod][i]] = distanta[nod] + 1;
			}
	}
}
int main()
{
	f >> n >> m >> target;
	while (m--)
	{
		f >> x >> y;
		v[x].push_back(y);
	}
	BFS(target);
	for (int i = 1; i <= n; i++)
	    g<<distanta[i] - 1 <<" ";
}