Cod sursa(job #2615924)

Utilizator suranimariaMaria Surani suranimaria Data 15 mai 2020 20:38:50
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <bits/stdc++.h>
using namespace std;
#define Nmax 100005

ifstream fin("bfs.in");
ofstream fout("bfs.out");

vector<int> v[Nmax] ;
queue<int> q ;

int main()
{
	int n , m , s , dp[Nmax] , i  , x , y ;
	fin >> n >> m >> s ;
	for ( int i = 0 ; i < m ; i++ )
    {
        fin >> x >> y ;
        v[x].push_back(y) ;
    }
	for(int i = 1 ; i <= n ; i++ ) dp[i] = -1 ;
	dp[s] = 0 ;
	q.push(s) ;
	while( !q.empty() )
		{
			int x = q.front() ;
			for ( auto i : v[x] )
				if ( dp[i] == -1 )
					{
						dp[i] = dp[x] +1 ;
						q.push(i) ;
					}
			q.pop() ;
		}
		for ( int i = 1 ; i <= n ; i++ )
			fout << dp[i] << ' ' ;
	return 0;
}