Cod sursa(job #2531805)

Utilizator Alex_AeleneiAlex Aelenei Ioan Alex_Aelenei Data 26 ianuarie 2020 19:01:47
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <vector>
#include <cstdio>

using namespace std;

const int NMAX = 5e4 ;

vector < int > ad [ NMAX + 5 ] ;
int sol [ NMAX + 5 ] , viz [ NMAX + 5 ] , poz ;

void dfs ( int node )
{
    viz [ node ] = 1 ;

    int i , found = 0 ;
    for ( i = 0 ; i < ad [ node ].size () ; ++ i )
        if ( ! viz [ ad [ node ] [ i ] ] )
            dfs ( ad [ node ] [ i ] ) ;

    sol [ ++ poz ] = node ;
}

int main()
{
    freopen ( "sortaret.in" , "r" , stdin ) ;
    freopen ( "sortaret.out" , "w" , stdout ) ;

    int n , m , i , x , y ;

    scanf ( "%d%d" , & n , & m ) ;

    for ( i = 1 ; i <= m ; ++ i )
    {
        scanf ( "%d%d" , & x , & y ) ;

        ad [ x ].push_back ( y ) ;
    }

    dfs ( 1 ) ;

    for ( i = n ; i >= 1 ; -- i )
        printf ( "%d " , sol [ i ] ) ;
    return 0;
}