Cod sursa(job #2574513)

Utilizator niculaandreiNicula Andrei Bogdan niculaandrei Data 5 martie 2020 23:12:47
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <bits/stdc++.h>
#define N_MAX 50005

using namespace std;

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

int N, M, x, y;

vector < int > G[N_MAX];

vector < int > Ans;

int vis[N_MAX];

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

int main()
{
    fin >> N >> M;
    for (int i = 1; i <= M; i++)
    {
        fin >> x >> y;
        G[x].push_back(y);
    }

    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;
}