Cod sursa(job #547376)

Utilizator selea_teodoraSelea Teodora selea_teodora Data 6 martie 2011 12:04:12
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<fstream>
using namespace std;
int n,m,i,j,viz[50005];
typedef
struct nod
{
	int nr;
	nod*urm;
}*Pnod;
Pnod l[50005],c;
void citire()
{
	ifstream fin("sortaret.in");
	fin>>n>>m;
	Pnod p;
	while(fin>>i>>j)
	{
		p=new(nod);
		p->nr=j;
		p->urm=l[i];
		l[i]=p;
	}
	fin.close();
}
void df(int start)
{
	viz[start]=1;
	Pnod p;
	for(p=l[start];p!=NULL;p=p->urm)
		if(viz[p->nr]==0)
			df(p->nr);
	Pnod q;
	q=new(nod);
	q->nr=start;
	q->urm=c;
	c=q;
}

int main()
{
	citire();
	for(i=1;i<=n;i++)
		if(viz[i]==0)
			df(i);
	Pnod p;
	ofstream fout("sortaret.out");
	p=c;
	while(p)
	{
		fout<<p->nr<<" ";
		p=p->urm;
	}
	fout<<'\n';
	fout.close();
	return 0;
	
}