Pagini recente » Cod sursa (job #1967717) | Cod sursa (job #1695939) | Cod sursa (job #1888594) | Cod sursa (job #516613) | Cod sursa (job #1997465)
#include <iostream>
#include<fstream>
const int N=100001;
const int M=1000001;
int nr;
int lst[N], q[N],d[N],nrp[N];
int vf[M], urm[M];
using namespace std;
void adaugare(int x, int y)
{
++nr;
nrp[y]++;
vf[nr]=y;
urm[nr]=lst[x];
lst[x]=nr;
}
int main()
{
ifstream cin("sortaret.in");
ofstream cout("sortaret.out");
int n, m, s,i, x, y, p, u, poz;
cin>>n>>m;
for(i=1; i<=m; i++)
{
cin>>x>>y;
adaugare(x, y);
}
p=0;
u=-1;
for(i=1; i<=n; i++)
{
if(nrp[i]==0)
{
q[++u]=i;
}
}
while(p<=u)
{
x=q[p++];
poz=lst[x];
cout << x << " ";
while(poz!=0)
{
y=vf[poz];
--nrp[y];
if(nrp[y]==0)
{
q[++u]=y;
}
poz=urm[poz];
}
}
/*
for(i=1; i<=n; i++)
{
cout<<q[i]<<' ';
}
*/
return 0;
}