Pagini recente » Cod sursa (job #2406298) | Cod sursa (job #559649) | Cod sursa (job #1634293) | Cod sursa (job #344306) | Cod sursa (job #412786)
Cod sursa(job #412786)
# include <stdio.h>
long n,m,i,a,b,j;
int viz[5005];
long sol[5005];
struct nod
{ nod * urm;
long info;
};
nod * top[5005];
void read()
{ nod *p;
for (i=1;i<=n;i++)
{scanf ("%ld %ld",&a,&b);
p=new nod;
p->info=b;
p->urm=top[a];
top[a]=p;
}
}
void dfs(long i)
{ nod *p;
if (top[i]==NULL)
{sol[++j]=i;
return;
}
p=top[i];
viz[i]=1;
while (p)
{ if (viz[p->info]==0)
{viz[p->info]=1;
dfs(p->info);
}
if (p->urm==NULL) {sol[++j]=i;
p=p->urm;
}
else p=p->urm;
}
}
int main()
{ freopen ("sortaret.in","r",stdin);
freopen ("sortaret.out","w",stdout);
scanf ("%ld %ld",&n,&m);
read();
j=0;
for (i=1;i<=n;i++)
{if (viz[i]==0)
dfs(i);
}
for (i=n;i>=1;i--)
printf ("%ld ",sol[i]);
return 0;
}