Cod sursa(job #158121)

Utilizator catalin_olariOlari Catalin Georgel catalin_olari Data 13 martie 2008 14:24:49
Problema Sortare topologica Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<fstream.h>

struct nod{int info;
		   nod *urm;
		   };

int n,m,viz[500];
nod *lista[500],*St;

void adaug(nod *&p,int x)
{
 nod *q=new nod();
 q->info=x;
 q->urm=p;
 p=q;
}

void citire()
{ifstream f("sortaret.in");
 f>>n>>m;

 int x1,x2;

 while(f>>x1>>x2)
	adaug(lista[x1],x2);

 f.close();
}

void df(int varf)
{
 viz[varf]=1;

 for(nod *q=lista[varf];q;q=q->urm)
	if(!viz[q->info])
		df(q->info);

 adaug(St,varf);
}


void afisare(nod *q)
{ofstream g("sortaret.out");


 while(q)
   {	g<<q->info<<" ";
	q=q->urm;
   }

 g.close();
}









int main()
{citire();

 for(int i=1;i<=n;i++)
   if(viz[i]==0)
		df(i);

 afisare(St);





return 0;

}