Cod sursa(job #263928)

Utilizator gabor_oliviu1991gaboru corupt gabor_oliviu1991 Data 20 februarie 2009 22:53:24
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<stdio.h>
#define N 50

struct nod {int info;
	    nod *urm;} *prim[N],*q,*p;

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

void dfs(int x)
{
	nod *q;
	viz[x] = 1;
	for(q = prim[x]; q; q = q->urm)
		if(!viz[q->info])
			dfs(q->info);
	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);
		p = new nod;
		p->info = y;
		p->urm = prim[x];
		prim[x] = p;
	}

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

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

	return 0;
}