Cod sursa(job #2935230)

Utilizator CotoiRaresCotoi Rares CotoiRares Data 6 noiembrie 2022 13:19:26
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream fi("sortaret.in");
ofstream fo("sortaret.out");
int n,m;
vector <int> ADJ[50001];
int GI[50001];
vector <int> REZ;
deque <int> L;
int main()
{
    fi>>n>>m;
    for (int i=1;i<=m;i++)
    {
        int a,b;
        fi>>a>>b;
        ADJ[a].push_back(b);
        GI[b]++;
    }
    for (int i=1;i<=n;i++)
        if (GI[i]==0)
            L.push_back(i);
    while (!L.empty())
    {
        int v;
        v=L.front();
        L.pop_front();
        REZ.push_back(v);
        for (auto it:ADJ[v])
        {
            GI[it]--;
            if (GI[it]==0)
                L.push_back(it);
        }
    }
    for (auto it:REZ)
        fo<<it<<" ";
    fi.close();
    fo.close();
    return 0;
}