Cod sursa(job #3237428)

Utilizator Bolfa_DBolfa Diana Bolfa_D Data 9 iulie 2024 01:26:42
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <bits/stdc++.h>
#define NMAX 500500
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
set<int> s[NMAX];
int n,m,v[NMAX],d[NMAX],x,y;
int main()
{
    fin>>n>>m;

    for(int i=1;i<=m;++i)
    {
        fin>>x>>y;
        if(s[x].find(y)==s[x].end())
        {
            s[x].insert(y);
            ++d[y];
        }
    }

    for(int i=1;i<=n;++i)
        if(d[i]==0)
            v[++v[0]]=i;
    for(int i=1;i<=n;++i)
    {
        x=v[i];
        for(auto j:s[x])
        {
            --d[j];
            if(d[j]==0)
                v[++v[0]]=j;
        }
    }

    for(int i=1;i<=n;++i)
        fout<<v[i]<<" ";

    return 0;
}