Pagini recente » Cod sursa (job #1799623) | Cod sursa (job #3156310) | Cod sursa (job #826555) | Cod sursa (job #2333257) | Cod sursa (job #2615924)
#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;
}