Cod sursa(job #2505016)

Utilizator VladG26Ene Vlad-Mihai VladG26 Data 6 decembrie 2019 00:11:25
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.9 kb
#include <iostream>
#include <bits/stdc++.h>

#define in_file "sortaret.in"
#define out_file "sortaret.out"
#define NMAX 50005

using namespace std;
vector<int> G[NMAX];
bool printed[NMAX];

void printVec(vector<int> v){
    for(auto e : v){
        fprintf(stdout, "%d, ", e);
    }
}

void top_sort_print(int node){
    if(!printed[node]){
        for(auto n: G[node]){
            top_sort_print(n);
        }
        cout<<node<<" ";
        printed[node]=true;
    }
}

int main()
{
    freopen(in_file, "r", stdin);
    freopen(out_file, "w", stdout);
    int n,m, n1, n2;
    cin>>n>>m;
    while(m--){
        cin>>n1>>n2;
        G[n1].push_back(n2);
    }
    for(int i=1; i<=n; i++){
        if(G[i].size()==0){
            cout<<i<<" ";
            printed[i] = true;
        }
    }
    for(int i=1; i<=n; i++){
        top_sort_print(i);
    }
    return 0;
}