Pagini recente » Cod sursa (job #2926549) | Cod sursa (job #1804967) | Cod sursa (job #2005717) | Cod sursa (job #321698) | Cod sursa (job #271641)
Cod sursa(job #271641)
#include<fstream.h>
#include<stdlib.h>
#define dim 50001
//char (*a)[dim]=new char[dim][dim];
int *a[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<=n;i++)
{
a[i]=(int *)realloc(a[i], sizeof(int));
a[i][0]=0;
}
for(i=1;i<=m;i++)
{f>>x>>y;
/* if(!a[x][y]) gri[y]++;
a[x][y]=1;*/
a[x][0]++;
a[x]=(int *)realloc(a[x], (a[x][0]+1)*sizeof(int));
a[x][a[x][0]]=y;
gri[y]++;
}
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<=a[i][0];j++)
gri[a[i][j]]--;
gri[i]=-1;
}
}
g<<'\n';
g.close();
return 0;
}