Cod sursa(job #2501662)

Utilizator CyborgSquirrelJardan Andrei CyborgSquirrel Data 30 noiembrie 2019 09:25:38
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>

using namespace std;

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

vector<int> gr[100041];
int vi[100041];

void bfs(int a){
	queue<int> qu;
	qu.push(a);
	vi[a] = 1;
	while(!qu.empty()){
		a = qu.front();qu.pop();
		for(auto b : gr[a]){
			if(vi[b] == 0){
				vi[b] = vi[a]+1;
				qu.push(b);
			}
		}
	}
}

int main(){
	int n, m, s;
	fin >> n >> m >> s;
	for(int i = 1; i <= m; ++i){
		int a, b;
		fin >> a >> b;
		gr[a].push_back(b);
	}
	
	bfs(s);
	for(int i = 1; i <= n; ++i){
		fout << vi[i]-1 << " ";
	}
	return 0;
}