Pagini recente » Cod sursa (job #989815) | Cod sursa (job #2912144) | Cod sursa (job #1663695) | Statistici Stefan Parus (Stefanromanul) | Cod sursa (job #184469)
Cod sursa(job #184469)
#include<stdio.h>
int *v[50011];
int x,sol[50100],k,n,i,nr[50100],viz[50100],m,y,t[50100];
void parc(int x){
int i;
viz[x]=1;
for(i=1;i<=v[x][0];i++){
if (viz[v[x][i]])
parc(v[x][i]);
}
k++;
sol[k]=x;
}
int main(){
FILE *f=fopen("sortaret.in","r");
fscanf(f,"%d %d",&n,&m);
for(i=1;i<=m;i++){
fscanf(f,"%d %d",&x,&y);
nr[x]++;
t[y]=1;
}
fclose(f);
for(i=1;i<=n;i++){
v[i]=new int [nr[i]+3];
}
for(i=1;i<=n;i++)
v[i][0]=0;
FILE *ff=fopen("sortaret.in","r");
fscanf(ff,"%d %d",&n,&m);
for(i=1;i<=m;i++){
fscanf(f,"%d %d",&x,&y);
//nr[x]++;
v[x][0]++;
v[x][v[x][0]]=y;
}
fclose(ff);
for(i=1;i<=n;i++){
if(!t[i])
parc(i);
}
FILE *g=fopen("sortaret.out","w");
for(i=k;i>=1;i--)
fprintf(g,"%d ",sol[i]);
fclose(g);
return 0;
}