Pagini recente » Cod sursa (job #401375) | Monitorul de evaluare | Profil tudorv96 | Rating Pop Andrei (aNd3rs0n111) | Cod sursa (job #2007556)
#include <iostream>
#include <list>
#include <cstdio>
using namespace std;
long long int x,y,In[50001],n,k;
list<long long int> V[50001],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();
}
}