Cod sursa(job #263938)

Utilizator gabor_oliviu1991gaboru corupt gabor_oliviu1991 Data 20 februarie 2009 23:00:42
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include<stdio.h>
#define N 300

int viz[N],post[N],nr,a[N][N];

void dfs(int x)
{
	int i;
	viz[x] = 1;
	for(i = 1; i <= a[x][0]; i++)
		if(!viz[a[x][i]])
			dfs(a[x][i]);
	post[++nr] = x;
}




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

	int n,m,i,x,y;

	scanf("%d %d %d %d",&n,&m);

	for(i = 1; i <= m; i++)
	{
		scanf("%d %d",&x,&y);
		a[x][a[x][0]+1] = y;
		a[y][a[y][0]+1] = x;
		a[x][0]++;
		a[y][0]++;
	}

	for(i = 1; i <= n;i++)
		if(!viz[i])
			dfs(i);

	for(i = n; i>0; i--)
		printf("%d ",post[i]);

	return 0;
}