Cod sursa(job #2099808)

Utilizator DimaTCDima Trubca DimaTC Data 4 ianuarie 2018 18:13:58
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include<bits/stdc++.h>

using namespace std;

int n,m,x,y,c;
vector<int>V[100100];
queue<int>Q;
int viz[100100];


void BFS(int x) {
	Q.push(x);
	viz[x]=1;
	
	while (!Q.empty()) {
		x = Q.front(); Q.pop();
		
		for (int i=0; i<V[x].size(); i++) {
			if (!viz[V[x][i]]) {
				viz[V[x][i]]=viz[x]+1;
				Q.push(V[x][i]);
			}
		}
	}
}

int main() {
	ifstream cin("bfs.in");
	ofstream cout("bfs.out");
	
	cin>>n>>m>>c;
	
	for (int i=0; i<m; i++) {
		cin>>x>>y;
		V[x].push_back(y);
	}
	
	
	BFS(c);
	
	for (int i=1; i<=n; i++) {
		cout<<viz[i]-1<<" ";
	}
	
	
	return 0;
}