Pagini recente » Cod sursa (job #1465693) | Cod sursa (job #3204755) | Cod sursa (job #401077) | Cod sursa (job #2532669) | Cod sursa (job #912897)
Cod sursa(job #912897)
#include<cstdio>
int m,n,i,j,x,y,gr[50013];
struct point
{
int x;
point *y;
}*g[50013],*p,*q,*w,*t;
int main()
{
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=0;i<m;++i)
{
scanf("%d%d",&x,&y);
p=new point;
p->x=y;
p->y=g[x];
g[x]=p;
++gr[y];
}
p=NULL;
for(i=1;i<=n;++i) if(gr[i]==0)
{
q=new point;
q->x=i;
q->y=p;
p=q;
}
for(q=p;q->y!=NULL;q=q->y);
for(i=0;i<n;++i)
{
x=p->x;
printf("%d ",x);
for(w=g[x];w!=NULL;w=w->y)
{
--gr[w->x];
if(gr[w->x]==0)
{
t=new point;
t->x=w->x;
t->y=NULL;
q->y=t;
q=t;
}
}
t=p;
p=p->y;
delete(t);
}
return 0;
}