Pagini recente » Cod sursa (job #2019143) | Cod sursa (job #1242986) | Cod sursa (job #1742220) | Cod sursa (job #1718441) | Cod sursa (job #164779)
Cod sursa(job #164779)
#include <stdio.h>
#define MAX 50000
FILE *f,*g;
int pred[MAX];
int n,m,i,a,b,k,printed;
int c[MAX];
struct lista{
int a;
lista *next;
};
lista *scs[MAX];
lista *nr;
int main(){
f=fopen("sortaret.in","r");
g=fopen("sortaret.out","w");
fscanf(f,"%d %d",&n,&m);
for(i=0;i<m;i++){
fscanf(f,"%d %d",&a,&b);
pred[b]++;
nr=new lista;
nr->next=scs[a];
nr->a = b;
scs[a]=nr;
}
while(printed<n){
for(i=1,k=0;i<=n;i++)
if(!pred[i]) c[k++]=i;
for(i=0;i<k;i++){
fprintf(g,"%d\n",c[i]);
printed++;
pred[c[i]]--;
nr=scs[c[i]];
while(nr){
pred[nr->a]--;
nr=nr->next;
}
}
}
fclose(g);
return 0;
}