Cod sursa(job #3305973)

Utilizator marinaluca2008Marina Luca Stefan marinaluca2008 Data 6 august 2025 12:25:41
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <bits/stdc++.h>
using namespace std;
//#define int long long
#define ll long long
#define cin fin
#define cout fout

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

constexpr int NMAX = (int) 5e4;
vector<int> v[NMAX + 1], vect;
int n, freq[NMAX + 1];
bool viz[NMAX + 1];
int m, x, y;
inline void dfs (int node)
{
    viz[node] = 1;
    for (auto elem : v[node])
        if (!viz[elem])
            dfs(elem);
    vect.push_back(node);
}
signed main(void)
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    cin >> n >> m;
    for (int i = 1; i <= m; i++)
    {
        cin >> x >> y;
        v[x].push_back(y);
        freq[y]++;
    }
    for (int i = 1; i <= n; i++)
        if (!viz[i] && !freq[i])
            dfs(i);

    reverse(vect.begin(), vect.end());

    for (auto elem : vect)
        cout << elem << ' ';
}