Cod sursa(job #288465)

Utilizator adrianraduleaRadulea Adrian adrianradulea Data 25 martie 2009 20:07:35
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include<stdio.h>
FILE *f,*g;
int viz[1200],n,m,a[1000][1000],i,j,x,y,grad[1200],vf;
void df(int k)
{ int i; if(!viz[k]) fprintf(g,"%d ",k); viz[i]=1;
  for(i=1;i<=n;i++) if(!viz[i]&&a[k][i]) df(i);
}
int main()
{ f=fopen("sortaret.in","r"); g=fopen("sortaret.out","w");
  fscanf(f,"%d%d",&n,&m);
  for(i=1;i<=n;i++) { fscanf(f,"%d%d",&x,&y); a[x][y]=1; grad[y]++;}
  for(i=1;i<=n;i++) if(viz[i]==0)
   { for(j=1;j<=n;j++) if(grad[j]==0) vf=i;
     df(vf);
   }
  fclose(g);
  return 0;
}