Pagini recente » Cod sursa (job #3137470) | Cod sursa (job #1447458) | Cod sursa (job #2402454) | Cod sursa (job #2769255) | Cod sursa (job #1922399)
#include <bits/stdc++.h>
using namespace std;
#define f first
#define s second
ifstream fin( "bfs.in" );
ofstream fout( "bfs.out" );
int i,j,n,m,ans[100010],x,y;
queue< int > Q;
list< int > G[ 100010 ];
int main()
{
fin>>n>>m>>j;
for( i = 1 ; i <= n ; i++ )
ans[ i ] = -1;
for( i = 1 ; i <= m ; i++ )
{
fin>>x>>y;
G[ x ].push_back( y );
}
Q.push( j );
ans[ j ] = 0;
while( Q.size() )
{
for( auto it : G[ Q.front() ] )
if( ans[ it ] == -1 )
{
ans[ it ] = ans[ Q.front() ] + 1;
Q.push( it );
}
Q.pop();
}
for( i = 1 ; i <= n ; i++ )
fout<<ans[ i ]<<' ';
return 0;
}