Cod sursa(job #220130)

Utilizator sory1806Sandu Sorina-Gabriela sory1806 Data 9 noiembrie 2008 15:44:41
Problema Sortare topologica Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include<stdio.h>
#define max 500
long b[max], v[max], n, m, i, x, y;
struct elem
{	long inf;
	elem *urm;
}	*a[max], *q;
FILE *f, *g;

int verif()
{	for(i=1; i<=n; i++)
	{	if(b[i]==0 && v[i]==0)
			return 1;
	}
	return 0;
}

int main()
{       f=fopen("sortaret.in", "r");
	g=fopen("sortaret.out", "w");
	fscanf(f, "%ld%ld", &n, &m);
	for(i=0; i<m; i++)
	{       fscanf(f, "%ld%ld", &x, &y);
		b[y]++;
		q=new elem;
		q->inf=y;
		q->urm=a[x];
		a[x]=q;
	}

	while(verif()!=0)
	{       fprintf(g, "%ld ", i);
		v[i]=1;
		q=a[i];
		while(q)
		{       b[q->inf]--;
			q=q->urm;
		}
	}
	fprintf(g, "\n");
	fclose(g );
	return 0;
}