Cod sursa(job #2724804)

Utilizator niculaandreiNicula Andrei Bogdan niculaandrei Data 17 martie 2021 21:19:57
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <bits/stdc++.h>

using namespace std;

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

const int N_MAX = 5e4 + 5;

int N, M, u, v;
vector < int > G[N_MAX];
int vis[N_MAX];

vector < int > Ans;

void DFS(int currNode)
{
    vis[currNode] = 1;
    for (int node: G[currNode])
        if (vis[node] == 0)
            DFS(node);
    Ans.push_back(currNode);
}

int main()
{
    fin >> N >> M;
    for (int i = 1; i <= M; i++)
    {
        fin >> u >> v;
        G[u].push_back(v);
    }
    for (int i = 1; i <= N; i++)
        if (vis[i] == 0)
            DFS(i);
    reverse(Ans.begin(), Ans.end());
    for (int node: Ans)
        fout << node << " ";
    return 0;
}