Pagini recente » Cod sursa (job #2081955) | Cod sursa (job #40203) | Cod sursa (job #708275) | Cod sursa (job #391797) | Cod sursa (job #523472)
Cod sursa(job #523472)
#include<fstream>
#include<stdlib.h>
using namespace std;
int *A[50000], N, M, viz[50000], l[20];
void read()
{
ifstream in("sortare.in");
int i, x, y;
in>>N>>M;
for (i=1; i<=N; i++)
{
A[i]=(int*)malloc(sizeof(int));
A[i][0]=0;
}
for (i=0; i<M; i++)
{
in>>x>>y;
A[x][0]++;
A[x]=(int *)realloc(A[x], (A[x][0]+1)*sizeof(int));
A[x][A[x][0]]=y;
}
// for (i=1; i<=N; i++)
// {
// cout<<i<<": ";
// for (x=1; x<=A[i][0]; x++)
// cout<<A[i][x]<<" ";
// cout<<endl;
// }
}
void sTop()
{
ofstream out("sortare.out");
int i, j, k, q, z;
for (i=1; i<=N; i++)
viz[i]=0;
k=0;
while(k<N)
{
for (i=1; i<=N; i++)
if (A[i][0]==0 && viz[i]==0)
{
k++;
// l[k]=i;
out<<i;
viz[i]=1;
for (j=1; j<=N; j++)
{
q=1;
while(q<A[j][0] && A[j][q]!=i)
{
q++;
}
if (q<=A[j][0])
{
for (z=q; z<=A[j][0]-1; z++)
{
A[j][z]++;
}
A[j][0]--;
}
}
}
}
}
int main()
{
read();
sTop();
return 0;
}