Pagini recente » Cod sursa (job #732571) | Cod sursa (job #3190433) | Cod sursa (job #617098) | Cod sursa (job #2848761) | Cod sursa (job #262753)
Cod sursa(job #262753)
#include<stdio.h>
#define max 50010
long s[max], x[max], n, m, nr;
int vz[max];
struct elem
{ long vf;
elem *urm;
} *a[max], *q;
FILE *f, *g;
void read()
{ long i, k, l;
f=fopen("stop.in", "r");
fscanf(f, "%ld%ld", &n, &m);
for(i=1; i<=m; i++)
{ fscanf(f, "%ld%ld", &k, &l);
vz[k]=1;
q=new elem;
q->vf=k;
q->urm=a[l];
a[l]=q;
}
}
void df(int z,int k)
{ elem *q;
s[k]=z;
q=a[z];
while(q)
{ df(q->vf, k+1);
nr++; x[nr]=s[k+1];
q=q->urm;
}
}
int main()
{ long i;
read();
for(i=1; i<=n; i++)
if(vz[i]==0)
{ df(i, 1);
nr++;
x[nr]=i;
}
g=fopen("stop.out", "w");
for(i=n; i>=1; i--)
fprintf(g, "%ld ", x[i]);
fclose(g);
return 0;
}