Cod sursa(job #2271972)

Utilizator DordeDorde Matei Dorde Data 29 octombrie 2018 15:38:12
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <fstream>
#include <vector>
#include <bitset>
#include <algorithm>

using namespace std;
int const NM = 5e4 + 7;
vector <int> v [NM] , s;
bitset <NM> o ;
ifstream f ("sortaret.in");
ofstream g ("sortaret.out");
inline void DF (int node){
    o [node] = 1;
    vector <int> :: iterator it;
    for(it = v [node] . begin () ; it != v [node] . end () ; ++ it)
        if (! o [*it])
            DF (*it);
    s . push_back (node);
}
int main (){
    int n , m , i;
    f >> n >> m;
    for(i = 1 ; i <= m ; ++ i){
        int a , b;
        f >> a >> b;
        v [a] . push_back (b);
    }
    for(i = 1 ; i <= n ; ++ i)
        if (! o [i])
            DF (i);
    vector <int> :: iterator it;
    reverse (s . begin () , s . end ());
    for(it = s . begin () ; it != s . end () ; ++ it)
        g << *it << ' ';
    return 0;
}