Cod sursa(job #2481780)

Utilizator OctavianVasileVasileOctavian OctavianVasile Data 27 octombrie 2019 13:38:30
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("sortaret.in");
ofstream fout ("sortaret.out");
const int NMAX = 50003;
vector <int> graf [NMAX];
vector <int> ans;
int grd [NMAX], N, M, X, Y;
int main (){
    fin >> N >> M;
    for (int i = 1; i <= M; i ++){
        fin >> X >> Y;
        graf [X].push_back (Y);
        grd [Y] ++;
    }
    for (int i = 1; i <= N; i ++)
        if (!grd [i])ans.push_back (i);
    for (int i = 0; i < N; i ++){
        int nod = ans [i];
        for (int o : graf [nod]){
            grd [o] --;
            if (!grd [o])
                ans.push_back (o);
        }
    }
    for (int i : ans)
        fout << i << " ";
    return 0;
}