Cod sursa(job #2371000)

Utilizator FlorianMarcuMarcu Florian Cristian FlorianMarcu Data 6 martie 2019 15:03:58
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 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;
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);
	while (!coada.empty())
	{
		int nod = coada.front();
		viz[nod] = 1;
		for (auto k : G[nod])
			if (!viz[k]) {
				coada.push(k);
				cost[k]=cost[nod]+1;
				//viz[k] = viz[nod] + 1;
			}
		coada.pop();
	}
	for (int i = 1; i <= n; i++)
		if (cost[i] == 0 and i != S)
			fout << -1 <<" ";
		else
			fout << cost[i] <<" ";		
}