Cod sursa(job #2562265)

Utilizator RagnoRazvan Petec Ragno Data 29 februarie 2020 13:10:49
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <bits/stdc++.h>

#define input "sortaret.in"
#define output "sortaret.out"

#define nMax 50001
#define all(a) begin(a), end(a)

using namespace std;

int n, m, x, y, s;
bool d[nMax];

vector <int> v[nMax];
vector <int> ans;

int dfs(int a)
{
    d[a] = true;
    for (auto i : v[a])
        if (d[i] == false)
            dfs(i);
    ans.emplace_back(a);
}

main()
{
    freopen(input, "r", stdin);
    freopen(output, "w", stdout);

    cin >> n >> m;
    for (int i = 1; i <= m; ++i)
    {
        cin >> x >> y;
        v[x].emplace_back(y);
    }

    for (int i = 1; i <= n; ++i)
        if (d[i] == false)
           dfs(i);

    reverse (all(ans));

    for (auto i : ans)
        cout << i << " ";
}