Cod sursa(job #383118)

Utilizator arnold23Arnold Tempfli arnold23 Data 15 ianuarie 2010 18:29:50
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <iostream.h>
#include <fstream.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 main()
{
 ifstream in("sortaret.in");
 ofstream out("sortaret.out");
 
 int i,a,b,n,m;
 in >>n >>m;
 for(i=1;i<=m;++i)
 {
 in>>a>>b;
 add(v[a],b);
 }
 
 for(i=1;i<=n;++i)
 if(!lat[i])
  dfs(i);
 
 for(lis q=sor;q;q=q->kov)
 {
 out << q->x;
 }
  
 return 0;
}