Pagini recente » Cod sursa (job #391983) | Cod sursa (job #3039801) | Cod sursa (job #2973371) | Cod sursa (job #2644634) | Cod sursa (job #152186)
Cod sursa(job #152186)
#include<stdio.h>
int n,m,viz[50005];
typedef struct nod
{ int x;
nod *next;
}*pNod;
pNod l[50005],a;
void add(int x,int y)
{ pNod p=new nod;
p->x=y;
p->next=l[x];
l[x]=p;
}
void citire()
{ freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
scanf("%d%d",&n,&m);
int i,x,y;
for(i=1;i<=m;i++)
{ scanf("%d%d",&x,&y);
add(x,y);
}
fclose(stdin);
}
void push(int x)
{ pNod p=new nod;
p->x=x;
p->next=a;
a=p;
}
void df(int nod)
{ viz[nod]=1;
for(pNod q=l[nod];q;q=q->next)
if(viz[q->x]==0) df(q->x);
viz[nod]=2;
push(nod);
}
void sortare()
{ int i;
for(i=1;i<=n;i++)
if(viz[i]==0) df(i);
}
int main()
{ citire();
sortare();
pNod q;
for(q=a;q;q=q->next)
printf("%d ",q->x);
printf("\n");
return 0;
}