Cod sursa(job #2226095)

Utilizator HumikoPostu Alexandru Humiko Data 29 iulie 2018 17:11:05
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <bits/stdc++.h>

using namespace std;

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

int n, m;
int f[50005];

vector <int> answer;
vector <int> graph[50005];

void topologicalSorting(int node)
{
    f[node] = 1;

    for ( auto x:graph[node] )
        if ( f[x] )
            topologicalSorting(x);

    answer.push_back(node);
}

int main()
{
    fin>>n>>m;
    for ( int i = 1; i <= m; ++i )
    {
        int first_Node, second_Node;
        fin>>first_Node>>second_Node;

        graph[first_Node].push_back(second_Node);
    }

    for ( int i = 1; i <= n; ++i )
    {
        if ( f[i] == 0 )
            topologicalSorting(i);
    }

    for ( auto x:answer )
        fout<<x<<" ";
}