Cod sursa(job #170462)

Utilizator sigridMaria Stanciu sigrid Data 2 aprilie 2008 19:42:20
Problema Sortare topologica Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include<fstream.h>
#include<stdlib.h>   
#define dim 5000//1



char (*a)[dim]=new char[dim][dim];
int gri[dim],vect[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++;   
    //adaug in vect varful   
    vect[nn]=i;   
    //il elimin   
    for(j=1;j<=n;j++)
     if(a[i][j]) gri[j]--;
    gri[i]=-1;
   }
}   
  
for(i=1;i<=n;i++) g<<vect[i]<<" ";   
g<<'\n';   
g.close();   
return 0;   
}