Cod sursa(job #3237402)

Utilizator Bolfa_DBolfa Diana Bolfa_D Data 8 iulie 2024 20:40:58
Problema Sortare topologica Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <bits/stdc++.h>
#define NMAX 50050
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
set<int> s[NMAX];
int g[NMAX],v[NMAX], k,n,m,x,y;
bool use[NMAX];
void st(int node)
{
    use[node]=1;
    v[++v[0]]=node;

    for(auto j:s[node])
    {
        --g[j];
        use[j]=1;
        if(g[j]==0)
            st(j);
    }
}
int main()
{
    fin>>n>>m;

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

    for(int i=1;i<=n;++i)
        if(use[i]==0 && g[i]==0)
            st(i);

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

    return 0;
}