Cod sursa(job #315062)

Utilizator cipriancxFMI - gr143 Timofte Ciprian cipriancx Data 14 mai 2009 11:57:35
Problema Sortare topologica Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.79 kb
#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;
}