Pagini recente » Cod sursa (job #1403491) | Cod sursa (job #2901428) | Monitorul de evaluare | Cod sursa (job #2017774) | Cod sursa (job #315062)
Cod sursa(job #315062)
#include<stdio.h>
#include<stdlib.h>
int n,m,x,y,grade[50001];
struct graf{int val; struct graf* urm;}*d[50001],*pc,*prim,*ultim;
int len=sizeof(struct graf*);
void intro(int x,int y)
{grade[y]++;
struct graf *p,*u;
u=p=malloc(len);
u=d[x];
while(u->urm!=NULL)u=u->urm;
p->val=y; p->urm=NULL; u->urm=p;
}
int main(void){
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
scanf("%d %d",&n,&m);
int i;
prim=ultim=malloc(len);
for(i=1; i<=n; i++){d[i]=malloc(len); d[i]->urm=NULL;}
for(i=1; i<=m; i++){scanf("%d %d",&x,&y);
intro(x,y);
}
prim=ultim;
for(i=1; i<=n; i++)if(grade[i]==0){pc=malloc(len); pc->val=i; pc->urm=NULL; ultim->urm=pc; ultim=pc;}
pc=prim;
while(pc){printf("%d ",pc->val); pc=pc->urm; }
return 0;
}