Cod sursa(job #2166517)

Utilizator chioreanraulChiorean Raul chioreanraul Data 13 martie 2018 17:33:43
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
#include <iostream>
#include <vector>

using namespace std;
int i,j,n,m,verif[50005],sol[50005],ord;

ifstream fin("sortaret.in");
ofstream fout("sortaret.out");

vector < int > v[50005];

void dfs( int nod )
{
    verif[ nod ] = 1;
    for( int k = 0; k < v[ nod ].size( ); k++ )
    {
        if( verif[ v[ nod ][ k ] ] == 0 )
            dfs( v[ nod ][ k ] );
    }
    sol[ ++ord ] = nod;
}
int main()
{
    fin>>n>>m;
    for( int r = 1; r <= m; r++ )
    {
        fin>>i>>j;
        v[ i ].push_back( j );
    }
    for( i = 1; i <= n; i++ )
    {
        if( verif[ i ] == 0 )
        {
             dfs( i );
        }

    }
    for(  i = n; i >= 1; i-- )
        fout<<sol[ i ]<<" ";
    return 0;
}