Cod sursa(job #2772336)

Utilizator lucriLuchian Cristian lucri Data 31 august 2021 19:24:05
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
int n,m,r[50010],x,y,f[50010],p;
vector<vector<int>>a;
int main()
{
    in>>n>>m;
    a.resize(n+5);
    for(int i=1;i<=m;++i)
    {
        in>>x>>y;
        a[x].push_back(y);
        ++f[y];
    }
    for(int i=1;i<=n;++i)
    {
        if(f[i]==0)
            r[++r[0]]=i;
    }
    while(p<n)
    {
        ++p;
        for(auto q:a[r[p]])
        {
            --f[q];
            if(f[q]==0)
                r[++r[0]]=q;
        }
    }
    for(int i=1;i<=n;++i)
        out<<r[i]<<' ';
    return 0;
}