Cod sursa(job #2587716)

Utilizator k2e0e0w3qDumitrescu Gheorghe k2e0e0w3q Data 23 martie 2020 14:29:33
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <bits/stdc++.h>
#define N 50001
using namespace std;

bitset <N> seen;
vector <int> G[N], S;
void DFS (int i) {
    seen[i]=1;
    for (auto it: G[i])
        if (!seen[it])
            DFS(it);
    S.push_back(i);
}

int main () {
    ifstream fin ("sortaret.in");
    ofstream fout ("sortaret.out");
    ios::sync_with_stdio(false);
    fin.tie(nullptr);
    fout.tie(nullptr);

    int n, m, i, j;
    fin >> n >> m;
    for (; m; m--) {
        fin >> i >> j;
        G[i].push_back(j);
    }

    for (i=1; i<=n; i++)
        if (!seen[i])
            DFS(i);

    for (auto it=S.rbegin(); it!=S.rend(); ++it)
        fout << *it << ' ';
    fout << endl;
    fout.close();
    return 0;
}