Cod sursa(job #271638)

Utilizator sigridMaria Stanciu sigrid Data 5 martie 2009 18:36:25
Problema Sortare topologica Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<fstream.h>  
#include<stdlib.h>     
#define dim 5000//1
   
char (*a)[dim]=new char[dim][dim];  
int gri[dim],ok;
     
int main()     
{  
ifstream f("sortaret.in");  
ofstream g("sortaret.out");
unsigned long n,m,i,j,x,y;
f>>n>>m;

for(i=1;i<=n;i++)
for(j=1;j<=n;j++) a[i][j]=0;
for(i=1;i<=m;i++)
  {f>>x>>y;
   if(!a[x][y]) gri[y]++;
   a[x][y]=1;
  }
f.close();

unsigned long nn=0;

while(nn<n)
 {
  for(i=1;i<=n;i++)

   if(gri[i]==0)
    {
     //contorizez numarul de varfuri eliminate
     nn++;

     //il adaug
     g<<i<<" ";

     //il elimin
     for(j=1;j<=n;j++)
      if(a[i][j]) gri[j]--;

     gri[i]=-1;
   }
}

g<<'\n';
g.close();
return 0;
}