Cod sursa(job #1591563)

Utilizator AndreiGrigorasAndrei Grigoras AndreiGrigoras Data 6 februarie 2016 13:41:48
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <cstdio>
#include <fstream>
#define Nmax 50010

using namespace std;

ofstream fout ( "sortaret.out" ) ;

int sp[Nmax] , lp , viz[Nmax] , matrix[Nmax][Nmax] , n ;
int DFS( int k )
{
    int i ;
    viz[k] = 1 ;
    for( i = 1 ; i <= n ; i++ )
        if( !viz[i] && matrix[k][i] == 1 )
            DFS(i) ;
    sp[++lp] = k ;
}

int main()
{
    int i , m , a , b ;
    freopen ( "sortaret.in" , "r" , stdin ) ;
    scanf( "%d %d" , &n , &m ) ;
    for( i = 0 ; i < m ; i++ )
    {
        scanf( "%d %d " , &a , &b ) ;
        matrix[a][b] = 1 ;
    }
    for( i = 1 ; i<= n ; i++)
        if( !viz[i] )
            DFS(i) ;
    for( i= lp  ; i >= 1 ; i--)
        fout << sp[i] << ' ' ;
}