Cod sursa(job #2671653)

Utilizator KPP17Popescu Paul KPP17 Data 12 noiembrie 2020 15:19:24
Problema Sortare topologica Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>
#define fisier "sortaret"
std::ifstream in(fisier ".in");
std::ofstream out(fisier ".out");
const int N = 50001;
#include <vector>
std::vector<int> L[N], R;
#include <bitset>
std::bitset<N> E;
void dfs(int t)
{
    for (int f: L[t])
        dfs(f);
    if (not E[t])
    {
        R.push_back(t);
        E[t] = true;
    }
}
#include <algorithm>
int main()
{
    int n, m;
    in >> n >> m;
    while (m--)
    {
        int a, b;
        in >> a >> b;
        L[a].push_back(b);
    }
    for (int i = 1; i <= n; i++)
        dfs(i);
    std::reverse(R.begin(), R.end());
    for (int r: R)
        out << r << ' ';
}