Cod sursa(job #2347486)

Utilizator Robys01Robert Sorete Robys01 Data 18 februarie 2019 20:27:44
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
#include <vector>
#include <stack>
#define NMAX 50005
using namespace std;

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

int n, m;
bool viz[NMAX];
vector <int> A[NMAX];
stack <int> Sort;


void citire(){
    fin>>n>>m;
    for(; m; m--){
        int x, y; fin>>x>>y;
        A[x].push_back(y);
    }
}
void DFS(int sursa){
    viz[sursa] = true;
    for(size_t i = 0; i<A[sursa].size(); i++){
        if(!viz[A[sursa][i]])
            DFS(A[sursa][i]);
    }
    Sort.push(sursa);
}

int main(){

    citire();
    for(int i=1; i<=n; i++){
        if(!viz[i])
            DFS(i);
    }
    while(!Sort.empty()){
        fout<<Sort.top()<<' ';
        Sort.pop();
    }
    return 0;
}