Cod sursa(job #2525116)

Utilizator CiboAndreiAndrei Cibo CiboAndrei Data 16 ianuarie 2020 20:02:25
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 f("sortaret.in");
ofstream g("sortaret.out");

const int dim = 50001;

int n, m;
vector <int> v[dim];
vector <int> nodes;
int degree[dim];

int main()
{
    int i, a, b;

    f >> n >> m;

    for(i = 1; i <= m; ++i){
        f >> a >> b;
        v[a].push_back(b);
        ++degree[b];
    }

    for(i = 1; i <= n; ++i)
        if(degree[i] == 0)
            nodes.push_back(i);

    for(i = 0; i < nodes.size(); ++i){
        int it = nodes[i];
        for(int it2: v[it]){
            --degree[it2];
            if(degree[it2] == 0)
                nodes.push_back(it2);
        }
    }

    for(auto it: nodes)
        g << it << " ";

    return 0;
}