Cod sursa(job #488195)

Utilizator snycwingsnycwing snycwing Data 27 septembrie 2010 21:51:20
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <stdio.h>

int n,m,x,y,i,use[50002];

struct list
{
	int nod;
	list *link;
}*la[50002];

void addnod(int x,int y)
{
	list *p;
	p=new list;
	p->nod=y;
	p->link=la[x];
	la[x]=p;
}

void df(int nod)
{
	list *p;
	use[nod]=1;
	p=la[nod];
	printf("%d ",nod);
	while(p!=NULL)
	{
		if(use[p->nod]==0) df(p->nod);
		p=p->link;
	}
}

int main()
{
	freopen("sortaret.in","r",stdin);
	freopen("sortaret.out","w",stdout);

	scanf("%d%d",&n,&m);
	for(i=1;i<=m;i++)
	{
		scanf("%d%d",&x,&y);
		addnod(x,y);
	}

	for(i=1;i<=n;i++) use[i]=0;
	for(i=1;i<=n;i++)
		if(!use[i]) df(i);

	printf("\n");

	return 0;
}