Cod sursa(job #2127934)

Utilizator prisacalexandruPrisac Alexandru prisacalexandru Data 11 februarie 2018 11:36:21
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include<bits/stdc++.h>

using namespace std;

vector <int> muchii[100100];
int n,m,nod;
queue <int> coada;

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

int distanta[100100];

void bfs(){
	int nod, vecin;
	while(!coada.empty()){
		nod=coada.front();
		coada.pop();
		for(unsigned int i=0;i<muchii[nod].size();i++){
			vecin=muchii[nod][i];
			if(distanta[vecin]==-1){
				coada.push(vecin);
				distanta[vecin]=distanta[nod]+1;
			}
		}
	}
}

void citire(){
	int nodStart;
	fin>>n>>m>>nodStart;
	for(int i=1;i<=m;i++){
		int x,y;
		fin>>x>>y;
		muchii[x].push_back(y);
	}
	for(int i=1;i<=n;i++){
		distanta[i]=-1;
	}
	distanta[nodStart]=0;
	coada.push(nodStart);
	bfs();
	for(int i=1;i<=n;i++){
		fout<<distanta[i]<<" ";
	}
	
}

int main(){
	citire();
	return 0;
}