Pagini recente » preoni2008-runda4-5-8 | Cod sursa (job #2845542) | Cod sursa (job #1084884) | Cod sursa (job #1476) | Cod sursa (job #149875)
Cod sursa(job #149875)
#include <stdio.h>
#include <malloc.h>
long n;
long *x[50001],l[50001],s[50001],ts=0,ls=0,viz[50001];
void push(long val)
{
s[ts]=val;
ts++;
}
long get()
{
ts--;
return s[ts];
}
void cit()
{
long i,j,s,d,m;
FILE *f;
f=fopen("sortaret.in","r");
fscanf(f,"%d %d",&n,&m);
for(i=0;i<m;i++)
{
fscanf(f,"%d %*d",&s);
l[s]++;
}
fclose(f);
for(i=1;i<=n;i++)
{
x[i]=malloc(sizeof(long)*l[i]);
l[i]=0;
}
f=fopen("sortaret.in","r");
fscanf(f,"%*d %*d");
for(i=0;i<m;i++)
{
fscanf(f,"%d %d",&s,&d);
x[s][l[s]]=d;
l[s]++;
}
}
void tip()
{
long i,j;
for(i=1;i<=n;i++)
{
printf("%d : ",i);
for(j=0;j<l[i];j++)
printf("%d ",x[i][j]);
printf("\n");
}
}
void df(long sp)
{
long i;
viz[sp]=1;
for(i=0;i<l[sp];i++)
if(!viz[x[sp][i]])df(x[sp][i]);
push(sp);
}
void outf()
{
FILE *f;
f=fopen("sortaret.out","w");
long i;
for(i=ts-1;i>0;i--)
{
if(viz[s[i]]==1)
{
fprintf(f,"%d ",s[i]);
viz[s[i]]=0;
}
}
fprintf(f,"%d\n",s[0]);
fclose(f);
}
int main()
{
long i;
cit();
for(i=1;i<=n;i++)
if(!viz[i])
{
df(i);
}
//printf("\n");
//tip();
outf();
return 0;
}