Cod sursa(job #496258)

Utilizator lucaz0rLuca Liviu lucaz0r Data 28 octombrie 2010 11:30:16
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <stdio.h>
#include <stdlib.h>
#include <fstream.h>
short m[3000][3000];
long N;
void cauta(int coloana) {
	int i;
	for (i=1; i<=N; i++) 
		if ( m[i][coloana] == 1) { printf("%ld ",i); cauta(i);}
}	
	

int main()
{long i,j,k,M,t,x,y;
freopen ("sortaret.in", "r", stdin);
freopen ("sortaret.out", "w", stdout);
scanf ("%ld %ld",&N,&M);
k=0;
for (i=1; i<=N; i++)
	for (j=1; j<=N; j++)
		m[i][j]=0;
for (i=1; i<=M; i++)
	{scanf ("%ld %ld", &x, &y);
	m[y][x]=1;}
for (i=1; i<=N; i++)
	{k=0;
		for (j=1; j<=N; j++)
		if	(m[i][j]==1)
			k++;
		if (k==0)
			{t=i;
			break;}}
printf ("%ld ",t);
cauta (t);
return 0;
}