Pagini recente » Cod sursa (job #2053846) | Cod sursa (job #2017740) | Cod sursa (job #2818056) | Monitorul de evaluare | Cod sursa (job #210314)
Cod sursa(job #210314)
#include <stdio.h>
struct data
{
int info;
data *urm;
};
typedef struct data *Lista;
Lista A[50000];
int B[50000];
int main()
{
FILE *in = fopen("sortaret.in","r");
FILE *out = fopen("sortaret.out","w");
int n,m,i;
Lista urm;
fscanf(in,"%d%d",&n,&m);
int x,y;
for (i=1;i<=m;i++)
{
fscanf(in,"%d%d",&x,&y);
urm = new data;
urm->info = y;
urm->urm = A[x];
A[x] = urm;
B[y]++;
}
int S=0,q=1;
while (q)
{
q=0;
for (i=1;i<=n;i++)
if (B[i]==0)
{
B[i]=-1;
q=1;
fprintf(out,"%d ",i);
while (A[i]!=NULL)
{
B[A[i]->info]--;
A[i] = A[i]->urm;
}
S++;
}
}
return 0;
}