Cod sursa(job #2970299)

Utilizator _Fibonacci_Caitaz _Fibonacci_ Data 24 ianuarie 2023 20:58:09
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
const int max_size=100002;

vector <int> graf[max_size];
int costuri[max_size],nr_noduri[max_size],coada[max_size];
int n,m,s,i,j,x,y,q;

int main()
{
	fin >> n >> m >> s ;
	for (i=1;i<=m;i++)
	{
		fin >> x >> y ;
		graf[x].push_back(y);
	}
	for (i=1;i<=n;i++)
	{
		nr_noduri[i]=graf[i].size();
		costuri[i]=-1;
	}
	q=1;
	costuri[s]=0;
	coada[q]=s;
	for (i = 1; i <= q; i++)
		for (j = 0; j < nr_noduri[coada[i]]; j++)
			if (costuri[graf[coada[i]][j]] == -1)
			{
				coada[++q] = graf[coada[i]][j];
				costuri[coada[q]] = costuri[coada[i]] + 1;
			}
	for (i=1;i<=n;i++)
	{
		fout << costuri[i] << " ";
	}
	return 0;
}