Pagini recente » Cod sursa (job #2483294) | Cod sursa (job #1115430) | Cod sursa (job #1284234) | Cod sursa (job #1881981) | Cod sursa (job #372609)
Cod sursa(job #372609)
#include <stdlib.h>
#include <stdio.h>
int lat[100000];
typedef struct nod{
int x;
nod * kov;
} *lis, nod;
lis v[100000], sor;
int add(lis &li, int el)
{
lis p = new nod;
p->x=el;
p->kov=li;
li=p;
return 0;
}
int dfs(int el)
{
lat[el]=1;
for(lis q=v[el]; q; q=q->kov)
if(lat[q->x]==0) dfs(q->x);
add(sor,el);
return 0;
}
int write()
{
for(lis q=sor;q;q=q->kov)
{
printf("%d ",q->x);
}
return 0;
}
int rewrite(lis el)
{
if(el->kov != NULL) rewrite(el->kov);
printf("%d ",el->x);
}
int main()
{
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
int i,a,b,n,m;
scanf("%d %d",&n,&m);
for(i=1;i<=m;++i)
{
scanf("%d %d",&a,&b);
add(v[a],b);
}
for(i=1;i<=n;++i)
if(!lat[i])
dfs(i);
write();
return 0;
}