Cod sursa(job #330893)

Utilizator ProcopliucProcopliuc Adrian Procopliuc Data 11 iulie 2009 22:23:31
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
# include <stdio.h>
int n,m,i,x,y,s[50005];
struct nod
{
int info;
nod *urm;
}*a[50005],*p,*q,*v;


void df (int x)
{
nod *p;
s[x]=1;
p=a[x];
while (p)
{
if (s[p->info]==0)
{
df (p->info);
q=new nod;
q->info=p->info;
q->urm=v;
v=q;
}
p=p->urm;
}

}



int main ()
{
freopen ("sortaret.in","r",stdin);
freopen ("sortaret.out","w",stdout);
scanf ("%i%i",&n,&m);
for (i=1;i<=m;i++)
{
scanf ("%i%i",&x,&y);
p=new nod;
p->info=y;
p->urm=a[x];
a[x]=p;
}

for (i=1;i<=n;i++)
if (s[i]==0)
{
df (i);
q=new nod;
q->info=i;
q->urm=v;
v=q;
}
while (v)
{
printf ("%i ",v->info);
v=v->urm;
}
return 0;
}