Pagini recente » Cod sursa (job #2031641) | Cod sursa (job #1403434) | Cod sursa (job #809469) | Cod sursa (job #2829753) | Cod sursa (job #1922415)
#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,in,sf,coada[100010];
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 );
}
in = sf = 1;
coada[ 1 ] = j;
ans[ j ] = 0;
while( in <= sf )
{
for( auto it : G[ coada[ in ] ] )
if( ans[ it ] == -1 )
{
ans[ it ] = ans[ coada[ in ] ] + 1;
coada[ ++sf ] = it;
}
++in;
}
for( i = 1 ; i <= n ; i++ )
fout<<ans[ i ]<<' ';
return 0;
}