Cod sursa(job #2660243)

Utilizator Zamfirescuste2Zamfirescu Stefan Zamfirescuste2 Data 18 octombrie 2020 16:39:44
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>
#include <vector>
#include <stack>

std :: ifstream f ("sortaret.in");
std :: ofstream g ("sortaret.out");

std :: vector <int > viz(50001);
std :: vector <int> list[50001];
std :: stack <int> stk;

void DFS (int nod);

int main(){

    int n, m;
    f >> n >> m;
    for (int i = 1; i <= m; i++){
        int x, y;
        f >> x >> y;
        list[x].push_back(y);
    }

    for ( int i = 1; i <= n; i++)
        if (viz[i] == 0 )
            DFS(i);

    while (!stk.empty()){
        g << stk.top() << " ";
        g << "\n";
        stk.pop();
    }

}
void DFS (int nod){
    viz[nod] = 1;
    for (auto elem : list[nod])
        if(!viz[elem])
            DFS(elem);
    stk.push(nod);
}