Pagini recente » Cod sursa (job #1871743) | Cod sursa (job #2665330) | Cod sursa (job #2385072) | Cod sursa (job #1637439) | Cod sursa (job #1107511)
#include <cstdio>
using namespace std;
int pred[100001];
int succ [50001][50001];
int q[100001];
int main()
{
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
int i,m,n,u=0,p=1,x,y,j;
scanf("%d%d",&n,&m);
for(i=1;i<=m;++i)
{
scanf("%d%d",&x,&y);
succ[x][0]++;
succ[x][succ[x][0]]=y;
pred[y]++;
}
p=1;
for(i=1;i<=n;++i)
if(pred[i]==0)
q[++u]=i;
while(p<=u)
{
for(i=1;i<=succ[q[p]][0];++i)
{
if(pred[succ[q[p]][i]]>0)
{
pred[succ[q[p]][i]]--;
if(pred[succ[q[p]][i]]==0)
q[++u]=succ[q[p]][i];
}
}
p++;
}
for(i=1;i<=u;++i)
printf("%d ",q[i]);
return 0;
}