Cod sursa(job #158144)

Utilizator catalin_olariOlari Catalin Georgel catalin_olari Data 13 martie 2008 14:33:03
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include<fstream.h>

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

int n,m,viz[50001];
nod *lista[50001],*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);
}


ofstream g("sortaret.out");

void afisare()
{
 if(St)
	{g<<St->info<<" ";
	 St=St->urm;
	 afisare();
	 delete St;
    }




}









int main()
{citire();

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

 afisare();




 g.close();
return 0;

}