Pagini recente » Cod sursa (job #1426852) | Cod sursa (job #1194044) | Cod sursa (job #1728024) | Cod sursa (job #1613627) | Cod sursa (job #164780)
Cod sursa(job #164780)
#include <stdio.h>
FILE *f,*g;
int pred[50001];
int n,m,i,a,b,k,printed;
int c[50001];
struct lista{
int a;
lista *next;
};
lista *scs[50001];
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;
}