Cod sursa(job #917855)

Utilizator vladvaldezVlad Dimulescu vladvaldez Data 18 martie 2013 13:31:46
Problema Sortare topologica Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <stdio.h>

using namespace std;
FILE *f=fopen("sortaret.in","r");
FILE *g=fopen("sortaret.out","w");


int a[10005][10005],viz[50004],n,nr,post[50004],m,i;

void citire()
{
  int x,y,i;
 fscanf(f,"%d%d",&n,&m);
for(i=1;i<=m;i++)
{
 fscanf(f,"%d%d",&x,&y);
 a[x][y]=1;
}
}

void df(int i)
{
  int j;
  viz[i]=1;
  for(j=1;j<=n;j++)
  if (!viz[j] && a[i][j])df(j);
  post[++nr]=i;
}


void sort()
{
int i;
for(i=1;i<=n;i++)
if(!viz[i])df(i);
for(i=n;i>=1;i--)
fprintf(g,"%d ",post[i]);
}


int main()
{
citire();
nr=0;
sort();


fclose(g);
return 0;
}