Cod sursa(job #372582)

Utilizator arnold23Arnold Tempfli arnold23 Data 10 decembrie 2009 20:38:33
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <cstdlib>
#include <cstdin>
int lat[100000];

struct nod{
 int x;
 nod * kov;
} v[100000], sor;

int add(nod *li; int el)
{
 nod p = new p;
 p->x=el;
 p->kov=li;
 li=p; 
 return 0;
}

int dfs(int el)
{
 lat[el]=1;
 nod *q=v[el];
 while(q != NULL)
 {
  if(lat[q->x]==1) dfs(q->x);
  q=q->kov;
 }
 add(sor,el);
 return 0;
}

int write()
{
 nod q=sor;
 while(q != NULL)
 {
 printf("%d ",q->x);
 q=q->kov;
 }
 return 0;
}

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(a,b);
 }
 
 for(i=1;i<=n;++i)
 if(!lat[i])
  visit(i);
 
 write();

 return 0;
}