Cod sursa(job #2371290)

Utilizator FlorianMarcuMarcu Florian Cristian FlorianMarcu Data 6 martie 2019 17:03:17
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
//#include "pch.h"
#include <iostream>
#include <fstream>
#include <queue>
#include <list>
#include <vector>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int n, m, S;
const auto NMAX = 100005;
vector<int> G[100005];
queue<int> coada;
int viz[100005],cost[100005];
int main()
{
	fin >> n >> m >> S;
	int i, j;
	while (fin >> i >> j)
		G[i].push_back(j);
	coada.push(S);
	cost[S] = 0;
	while (!coada.empty())
	{
		int nod = coada.front();
		viz[nod] = 1;
		for (auto k : G[nod])
			if(!viz[k] ){
				coada.push(k);
				//if(cost[k]>cost[nod]+1)
				cost[k] = cost[nod] + 1;
				viz[k] = 1;
			}
		coada.pop();
	}
	for (int i = 1; i <= n; i++)
		if (cost[i] == 0 and i != S)
			fout << -1 <<" ";
		else
			fout << cost[i] <<" ";		
	return 0;
}