Pagini recente » Cod sursa (job #2186717) | Cod sursa (job #2211234) | Cod sursa (job #2876374) | Cod sursa (job #1286203) | Cod sursa (job #407634)
Cod sursa(job #407634)
#include<stdio.h>
#define Nmax 50001
typedef struct nod { long inf;nod *adr; } *Lista;
Lista l[Nmax];
long n,m;
char viz[Nmax];
Lista po;
void adaugare(long y,Lista &p)
{ Lista x;
x=new nod;
x->inf=y;
x->adr=p;
p=x;
}
void citire()
{ long i,x,y;
freopen("sortaret.in","r",stdin);
scanf("%ld%ld",&n,&m);
for (i=1;i<=m;i++)
{ scanf("%ld%ld",&x,&y);
adaugare(y,l[x]);
}
}
void adancime(long x)
{ Lista p;
viz[x]=1;
for (p=l[x];p;p=p->adr)
if (!viz[p->inf])
adancime(p->inf);
adaugare(x,po);
}
void afisare()
{ Lista p;
freopen("sortaret.out","w",stdout);
for (p=po;p;p=p->adr)
printf("%ld ",p->inf);
}
int main()
{ long i;
citire();
for (i=1;i<=n;i++)
if (!viz[i]) adancime(i);
afisare();
return 0;
}