Cod sursa(job #2321161)

Utilizator potirasUAIC Borcan Andreea potiras Data 15 ianuarie 2019 19:10:45
Problema BFS - Parcurgere in latime Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>
#include<vector>
#include<queue>
using namespace std;
ifstream cin("bfs.in");
ofstream cout("bfs.out");
int n,m,s,x,y,i,j;
vector<int> v[100010];	
queue<int> q;
int drum[100010];

bool viz[100000];
int main()
{	
	cin>>n>>m>>s;
	for(i=1;i<=m;i++)
	{
		cin>>x>>y;
		v[x].push_back(y);
	}

	int nod;
	drum[s]=0;
	q.push(s);
	while(!q.empty())
	{
		nod=q.front();
		q.pop();
		for(auto i : v[nod])
		{
			if(!viz[i])
			{
				viz[i]=1;
				if(i!=nod)
					drum[i]=drum[nod]+1;
				q.push(i);
			}
		}
		// for( int l=1;l<=n;l++)
		// 	cout<<"i "<<l<<" drum "<<drum[l]<<endl;


	}
	for(i=1;i<=n;i++)
		if(viz[i] || i==s)
			cout<<drum[i]<<' ';
		else cout<<-1<<' ';
	/* code */
	return 0;
}