Cod sursa(job #2967929)

Utilizator andrew91beteringhe andrei andrew91 Data 20 ianuarie 2023 13:14:57
Problema Subsir crescator maximal Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
string file = "bfs";
ifstream cin (file + ".in");
ofstream cout (file + ".out");
vector <int> d, L[100001];
queue <int> Q;
int n;
void BFS(int S)
{
	Q.push(S);
	d.resize(n + 1, -1);
	d[S] = 0;
	while (!Q.empty())
	{
		int x = Q.front();
		Q.pop();
		for (int y : L[x])
		{
			if (d[y] == -1)
			{
				d[y] = d[x] + 1;
				Q.push(y);
			}
		}
	}
}
int main()
{
	int m, S, x, y,da;
	cin >> n >> m >> S;
	while (m)
	{
		cin >> x >> y;
		m--;
		L[x].push_back(y);
	}
	BFS(S);
	for (int i = 1; i <= n; i++)
		cout << d[i] << ' ';
}