Cod sursa(job #1368942)

Utilizator gerd13David Gergely gerd13 Data 2 martie 2015 20:42:56
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include <bits/stdc++.h>

using namespace std ;

    const int NMAX = 50005 ;

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

    vector <int> V[NMAX] ;
    vector <int> L ;
    int N, M ;
    bool use[NMAX] ;


void DFS(int nod)
{
        //use[nod] = 1 ;
    for(vector <int> ::iterator it = V[nod].begin() ; it != V[nod].end() ; ++ it)
        if(!use[*it])
    {
        use[*it] = 1 ;
        DFS(*it) ;
        L.push_back(*it) ;

    }
    }

int main()
{
    fin >> N >>  M;

    for(int i = 1 ; i <= M ; ++ i)
    {

        int X, Y ;

        fin >> X >> Y ;

        V[X].push_back(Y) ;

    }


    for(int i = 1 ; i <= N ; ++ i)
        if(!use[i])
    {
        DFS(i) ;
    }
        for(vector <int> ::reverse_iterator it = L.rbegin() ; it != L.rend() ; ++ it)
            fout << *it << ' ' ;

    fin.close() ;
    fout.close() ;
    return  0 ;
}