Cod sursa(job #2930155)

Utilizator mati.coldea@gmail.comMatei Coldea [email protected] Data 27 octombrie 2022 16:48:39
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <bits/stdc++.h>

using namespace std;
vector<int> G[100002];
vector<int> viz(100002,-1);
int n, m;
int x, y;
int nrc = 0;
int s;
void bfs(int vf) {
	queue<int> Q;
	Q.push(vf);
	viz[vf] = 0;
	while (!Q.empty()) {
		int act = Q.front();
		Q.pop();
		for (auto i : G[act]) {
			if (viz[i] == -1) {
				Q.push(i);
				viz[i] = viz[act] + 1;
			}
		}
	}
}

int main()
{
	freopen("bfs.in", "r", stdin);
	freopen("bfs.out", "w", stdout);
	cin >> n >> m>>s;
	for (int i = 1; i <= m; i++) {
		cin >> x >> y;
		G[x].push_back(y);
		
	}

	
	bfs(s);
	
	for (int i = 1; i <= n; i++) {
			cout << viz[i] << ' ';

	}



}