Cod sursa(job #1922399)

Utilizator DysKodeTurturica Razvan DysKode Data 10 martie 2017 17:18:43
Problema BFS - Parcurgere in latime Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#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;
}