Cod sursa(job #1368849)

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

using namespace std ;

    const int NMAX = 50000 ;

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

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


void DFS(int nod)
{

        use[nod] = 1 ;



            for(int i = 0 ; i < V[nod].size() ; ++ i) //auto i
                if(!use[V[nod][i]])
                    {
                        use[V[nod][i]] = 1;
                        L.push_back(V[nod][i]) ;
                        DFS(V[nod][i]) ;


                    }


    }

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

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

        int X, Y ;

        fin >> X >> Y ;

        V[X].push_back(Y) ;

    }

    fout << 1 << ' ' ;
    for(int i = 1 ; i <= N ; ++ i)
        if(!use[i])
    {

        DFS(i) ;
    }



        for(vector <int> ::iterator it = L.begin() ; it != L.end() ; ++ it)
            fout << *it << ' ' ;

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