Pagini recente » Cod sursa (job #232082) | Cod sursa (job #1426608) | Cod sursa (job #2871074) | Cod sursa (job #3032460) | Cod sursa (job #1891559)
///FLAVIUS, UBESTE-MA
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream fin( "bfs.in" );
ofstream fout("bfs.out");
vector< int > G[100010];
int ans[100010],use[100010],i,j,n,m,x,y,s;
queue <int> Q;
int main()
{
fin>>n>>m>>s;
for( i = 1 ; i <= m ; i++ )
{
fin>>x>>y;
G[ x ].push_back( y );
}
Q.push( s );
for( i = 1 ; i <= n ; i++ )
{
ans[ i ] = -1;
}
ans[ s ] = 0;
while( Q.size() )
{
use[ Q.front() ] = 1;
for( auto it : G[ Q.front() ] )
{
if( !use[ it ] )
{
use[ it ] = 1;
Q.push( it );
ans[ it ] = ans[ Q.front() ] + 1;
}
}
Q.pop();
}
for( i = 1 ; i <= n ; i++ )
fout<<ans[ i ]<<' ';
return 0;
}