Cod sursa(job #2632571)

Utilizator Andrei-27Arhire Andrei Andrei-27 Data 3 iulie 2020 20:50:19
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <bits/stdc++.h>
#define pb push_back
#define pf push_front
using namespace std ;
const int NR = 50001 ;
ifstream f ( "sortaret.in" ) ;
ofstream g ( "sortaret.out" ) ;
vector < int > v [ NR ] ;
bool viz [ NR ] ;
int sol [ NR ] , cnt , n , m ;
void dfs ( int nod )
{
    viz [ nod ] = true ;
    sol [ ++ cnt ] = nod ;
    for ( size_t i = 0 ; i < v [ nod ].size() ; ++ i )
    {
        int vecin = v [ nod ][ i ] ;
        if ( !viz [ vecin ] )
            dfs ( vecin ) ;
    }

}
void input ()
{
    int x , y ;
    f >> n >> m ;
    while ( m -- )
    {
        f >> x >> y ;
        v [ x ].pb ( y ) ;
    }
}
int main ()
{
    int i ;
    input() ;
    for ( i = 1 ; i <= n ; ++ i )
        if ( !viz [ i ] )   dfs ( i ) ;

    for ( i = 1; i <= n ; i ++ )    g << sol [ i ] << " " ;
}