Cod sursa(job #220124)

Utilizator sory1806Sandu Sorina-Gabriela sory1806 Data 9 noiembrie 2008 15:24:36
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<stdio.h>
#define max 50000
int b[max], v[max], n, m, i, x, y;
struct elem
{	int 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("stop.in", "r");
	g=fopen("stop.out", "w");
	fscanf(f, "%d%d", &n, &m);
	for(i=0; i<m; i++)
	{       fscanf(f, "%d%d", &x, &y);
		b[y]++;
		q=new elem;
		q->inf=y;
		q->urm=a[x];
		a[x]=q;
	}

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