Cod sursa(job #3149094)

Utilizator lensuLensu Alexandru lensu Data 6 septembrie 2023 13:36:48
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>
#include <vector>
#include <queue>

using namespace std;

ifstream cin("bfs.in");
ofstream cout("bfs.out");

const int NMAX = 1e5;
vector<int> muchii[NMAX + 1];
int N, M, S, cost[NMAX + 1];

void Bfs(int node)
{
	queue<int> q;
	q.push(node);
	while (!q.empty())
	{
		int nod = q.front();
		q.pop();
		for (int i = 0; i < muchii[nod].size(); i++)
		{
			if (cost[muchii[nod][i]] == 0)
			{
				cost[muchii[nod][i]] = cost[nod] + 1;
				q.push(muchii[nod][i]);
			}
		}
	}
}

int main()
{
	cin >> N >> M >> S;

	while (M--)
	{
		int sursa, destinatie;

		cin >> sursa >> destinatie;

		muchii[sursa].push_back(destinatie);
	}

	cost[S] = 1;
	Bfs(S);

	for (int i = 1; i <= N; i++)
		cout << cost[i] - 1 << ' ';
}