Cod sursa(job #2007555)

Utilizator codi22FMI Condrea Florin codi22 Data 3 august 2017 11:58:42
Problema Sortare topologica Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <iostream>
#include <list>
#include <cstdio>
using namespace std;
long long int x,y,In[50000],n,k;
list<int> V[50000],Elimina;
int main()
{
    freopen("sortaret.in","r",stdin);
    freopen("sortaret.out","w",stdout);
    cin>>n>>k;
    for (int i=0;i<k;i++)
    {
        cin>>x>>y;
        V[x].push_back(y);
        In[y]++;
    }
    for (int i=1;i<=n;i++)
    {
        if (In[i]==0)
        {
            Elimina.push_back(i);
        }
    }
    for (int i=0;i<n;i++)
    {
        int current = Elimina.front();
        cout<<current<<" ";
        int nr = V[current].size();
        for (int j=0;j<nr;j++)
        {
            In[V[current].front()]--;
            if (In[V[current].front()]==0)
            {
                Elimina.push_back(V[current].front());
            }
            V[current].pop_front();
        }
        Elimina.pop_front();
    }
}