Cod sursa(job #3363590)

Utilizator TudorMitMituca Tudor TudorMit Data 19 august 2026 16:11:49
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <vector>
#include <queue>
#include <fstream>

using namespace std;

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

int n,m;
vector<vector<int>>ad;
vector<int>dist;

vector<int>bfs(int x){
	queue<int>q;
	int vf;
	q.push(x);
	dist[x]=0;
	while(!q.empty()) {
		vf=q.front();
		q.pop();
		for (int i=0;i<ad[vf].size();i++){
			if (dist[ad[vf][i]]==-1) {
				dist[ad[vf][i]]=dist[vf] + 1;
				q.push(ad[vf][i]);
			}
		}
	}
	return dist;
}

int main() {
	int s,a,b;
	cin>>n>>m>>s;
	ad.resize(n);
	for(int i=0;i<n;i++)
	    dist.push_back(-1);
	for (int i=0;i<m;i++){
		cin>>a>>b;
		ad[a-1].push_back(b-1);
	}
	bfs(s-1);
	for(int i=0;i<n;i++)
		cout<<dist[i]<<" ";
	cout<<"\n";
	return 0;
}