Cod sursa(job #3170718)

Utilizator AndreiMLCChesauan Andrei AndreiMLC Data 18 noiembrie 2023 01:20:17
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>

using namespace std;

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

int n, m,s;
vector<int> G[100005];
int viz[100005];
queue<int> q;

void bfs()
{
	int nodCurent;
	viz[s] = 1;
	q.push(s);
	while (!q.empty())
	{
		nodCurent = q.front();
		q.pop();
		for (int i = 0; i < G[nodCurent].size(); i++)
		{
			if (viz[G[nodCurent][i]] == 0)
			{
				viz[G[nodCurent][i]] = viz[nodCurent]+1;
				q.push(G[nodCurent][i]);
			}
		}
	}
}
int main()
{
	f >> n >> m >> s;
	for (int i = 1; i <= m; i++)
	{
		int x,y;
		f >> x >> y;
		G[x].push_back(y);
	}
	bfs();
	for (int i = 1; i <= n; i++)
	{
		g << viz[i] - 1 <<  ' ';
	}
}