Cod sursa(job #2695159)

Utilizator vladdudauDudau Vlad vladdudau Data 11 ianuarie 2021 22:43:14
Problema Parcurgere DFS - componente conexe Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include <bits/stdc++.h>
#include<vector>
#include<queue>

using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
vector<int> ListaMuchii[100001];
queue<int> q;
bool vizitat[100001];
int distanta[100001],x,nrNod;

void BFS()
{
	while(!q.empty()) ////Cat timp coada nu e goala
	{
		x=q.front();
		q.pop();
		for(int i=0;i<ListaMuchii[x].size();++i)
		{
			if(vizitat[ListaMuchii[x][i]]==false)
			{
				q.push(ListaMuchii[x][i]);
				distanta[ListaMuchii[x][i]]=distanta[x]+1;
				vizitat[ListaMuchii[x][i]]=true;
			}
		}
	}
	for(int i=1;i<=nrNod;++i)
		fout<<distanta[i]<<" ";
	return ;
}

int main()
{

	int nrMuchii,x1,y1,Sursa;
	fin>>nrNod>>nrMuchii>>Sursa;
	for(int i=1;i<=nrMuchii;++i)
	{
		fin>>x1>>y1;
		ListaMuchii[x1].push_back(y1);
	}
	q.push(Sursa);
	vizitat[Sursa]=true;
	for(int i=1;i<=nrNod;++i)
		distanta[i]=-1;
	distanta[Sursa]=0;
	BFS();
	return 0;
}