Cod sursa(job #2701638)

Utilizator beingsebiPopa Sebastian beingsebi Data 31 ianuarie 2021 21:34:16
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
// #define f cin
// #define g cout
vector<vector<int>> v;
stack<int> st;
vector<bool> bif;
void dfs(int);
int n, m;
int main()
{
    ios_base::sync_with_stdio(false);
    f.tie(nullptr);
    g.tie(nullptr);
    f >> n >> m;
    v.resize(n + 1);
    bif.resize(n + 1);
    for (int x, y; m; m--)
        f >> x >> y, v[x].emplace_back(y);
    for (int i = 1; i <= n; i++)
        if (!bif[i])
            dfs(i);
    while (!st.empty())
        g << st.top() << " ", st.pop();
    return 0;
}
void dfs(int x)
{
    bif[x] = 1;
    for (const auto &i : v[x])
        if (!bif[i])
            dfs(i);
    st.push(x);
}