Cod sursa(job #1010751)

Utilizator vladvaldezVlad Dimulescu vladvaldez Data 15 octombrie 2013 17:30:22
Problema Sortare topologica Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <stdio.h>

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

int a[10002][10002],viz[50001],n,nr,c[50010],m,i,x,y;

void sortt();
void df(int i);

void sortt()
{
int i;
 for(i=1;i<=n;i++)
 if (!viz[i])df(i);

for(i=n;i>=1;i--)
fprintf(g,"%d ",c[i]);
}

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

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

fclose(g);
return 0;
}