Cod sursa(job #3308539)

Utilizator ViAlexVisan Alexandru ViAlex Data 25 august 2025 22:08:10
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include<iostream>
#include<fstream>
#include<deque>
#include<vector>
using namespace std;

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

int n, m, s;
vector<vector<int>> graph;
vector<int> distances;

void read() {
	in>>n>>m>>s;
	graph.resize(n);
	distances.resize(n, -1);

	int a, b;
	for (int i=0; i<m; i++){
		in>>a>>b;
		graph[a-1].push_back(b-1);
	}
}


void solve() {
	deque<int> q;

	q.push_back(s-1);
	distances[s-1] = 0;

	while(!q.empty()) {
		int top = q.front();
		q.pop_front();
		for (int next: graph[top]) {
			if (distances[next] != -1) {
				continue;
			}
			distances[next] = distances[top] + 1;
			q.push_back(next);
		}
	}

	for (int i = 0; i < n; i++ ){
		out<<distances[i]<<" ";
	}
}


int main() {
	read();
	solve();
	return 0;
}