Cod sursa(job #3268433)

Utilizator MerlinTheWizardMelvin Abibula MerlinTheWizard Data 15 ianuarie 2025 10:57:26
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 kb
#include<bits/stdc++.h>

using namespace std;

const int NMAX = 1e5 + 5;
int n, m, ans[NMAX], s;
vector<int> v[NMAX];

int main()
{
	freopen("bfs.in", "r", stdin);
	freopen("bfs.out", "w", stdout);

	cin >> n >> m >> s;
	int a, b;
	for(int i = 1; i <= m; i++)
	{
		cin >> a >> b;
		v[a].push_back(b);
	}

	for(int i = 1; i <= n; i++)
		ans[i] = -1;

	queue<int> q;
	q.push(s);
	ans[s] = 0;

	while(!q.empty())
	{
		int nod = q.front();
		q.pop();

		for(auto u : v[nod])
		{
			if(ans[u] == -1 && u != s)
			{
				ans[u] = ans[nod] + 1;
				q.push(u);
			}
		}
	}

	for(int i = 1; i <= n; i++)
		cout << ans[i] << " ";
}