Cod sursa(job #2341241)

Utilizator al3xionescuIonescu Alexandru al3xionescu Data 11 februarie 2019 18:19:09
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>
#include <vector>
#include <stack>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
vector <int> A[50005];
stack <int> S;
int n, m;
int F[50005];
void search(int x) {
    F[x] = 1;
    for (auto i:A[x]) {
        if (F[i] == 0) {
            search(i);
        }
    }
    S.push(x);
}
int main() {
    fin >> n >> m;
    for (int i = 1; i <= m; i++) {
        int x,y;
        fin >> x >> y;
        A[x].push_back(y); 
    }
    for (int i = 1; i <= n; i++) {
        if (F[i] == 0) {
            search(i);
        }
    }
    while(!S.empty()) {
        fout << S.top() << ' ';
        S.pop();
    }
    return 0;
}