Cod sursa(job #3314598)

Utilizator DalvDalvGhita Vladut DalvDalv Data 10 octombrie 2025 14:44:42
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <cmath>
#include <queue>
#include <stack>

using namespace std;

int dist[100001];
vector<int> graf[100001];

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

	int n, m, s;
	cin >> n >> m >> s;

	for(int i = 1; i <= n; i++) {
		dist[i] = -1;
	}

	for(int i = 0; i < m; i++) {
		int a, b; cin >> a >> b;

		graf[a].push_back(b);
	}

	queue<int> toExplore;
	toExplore.push(s);
	dist[s] = 0;

	while(toExplore.size() > 0) {
		int nod = toExplore.front();
		toExplore.pop();
		for(int vecin : graf[nod]) {
			if(dist[vecin] >= 0) continue;

			toExplore.push(vecin);
			dist[vecin] = dist[nod] + 1;
		}
	}

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