Cod sursa(job #210314)

Utilizator free2infiltrateNezbeda Harald free2infiltrate Data 27 septembrie 2008 12:26:00
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#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;
}