Cod sursa(job #412795)

Utilizator cosgbCosmin cosgb Data 6 martie 2010 00:10:30
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
# include <stdio.h>
long cp[1000],sol[1000],viz[1000];
long v[1000][1000];
long n,m,i,j,nr,k,a,b;



void read ()
{ for (i=1;i<=n;i++)
     {scanf ("%ld %ld",&a,&b);
      cp[b]++;
	  v[a][0]++;
	  v[a][v[a][0]]=b;
	 }
}

void rezolvare()
{ nr=n;i=1;j=0;
	while (nr!=0)
	{
		if (cp[i]!=0||viz[i]==1)
			  i++;
		  else {sol[++j]=i;
		         viz[i]=1;
		        for (k=1;k<=v[i][0];k++)
					cp[v[i][k]]--;
				i=1;
				nr--;
			   }
	}
}	




int main()
{ freopen ("sortaret.in","r",stdin);
  freopen ("sortaret.out","w",stdout);
  scanf ("%ld %ld",&n,&m);
  read();
  rezolvare();
  for (i=1;i<=n;i++)
	    printf ("%ld ",sol[i]);
  return 0;
}