Cod sursa(job #3187030)

Utilizator Mihai_999Diaconeasa Mihai Mihai_999 Data 26 decembrie 2023 23:28:44
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <stack>
#define nl '\n'

using namespace std;

ifstream fin("sortaret.in");
ofstream fout("sortaret.out");

const int NMAX = 5*1e4+2;

int n, m, fr[NMAX];
vector<int> adj[NMAX];
stack<int> st;

void dfs(int x)
{
    fr[x] = 1;
    for (int y : adj[x])
        if (!fr[y])
            dfs(y);
    st.push(x);
}
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    fin >> n >> m;
    for (int i = 1; i <= m; i++)
    {
        int u, v;
        fin >> u >> v;
        adj[u].push_back(v);
    }
    for (int i = 1; i <= n; i++)
        if (!fr[i])
            dfs(i);
    while (!st.empty())
    {
        fout << st.top() << ' ';
        st.pop();
    }
    return 0;
}