Cod sursa(job #1120418)

Utilizator span7aRazvan span7a Data 25 februarie 2014 00:01:51
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<fstream>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
struct nod
{
	int inf;
	nod* leg;
};
typedef nod* PNod;
PNod L[50001];
int q[50001],viz[50001],nr,n,m;
void df(int i)
{
	viz[i]=1;
	for(PNod p=L[i];p;p=p->leg)
		if(!viz[p->inf])
			df(p->inf);
	q[++nr]=i;
}
void add(int x,int y)
{
	PNod p=new nod;
	p->inf=y;
	p->leg=L[x];
	L[x]=p;
}
int main()
{
	int a,b,i,j;
	f>>n>>m;
	for(i=1;i<=m;i++)
	{	f>>a>>b;
		add(a,b);
	}
	for(i=1;i<=n;i++)
		if(viz[i]==0)
			df(i);
	for(j=nr;j>=1;j--)
		g<<q[j]<<" ";
	
	return 0;
}