#include<fstream.h>
fstream fin("date.in",ios::in);
fstream fout("date.out",ios::out);
int a[20][20],t[100],n,max,mx,my,p[100],f[100];
void citire()
{ int i;
fin>>n;
for(i=1;i<=n;i++)
{fin>>t[i];
f[t[i]]=1;
a[i][t[i]]=1;
a[t[i]][i]=1;
}
}
void df( int r, int niv,int k)
{p[k]=1;
if(niv>max){ max=niv;
mx=r;
my=k;
}
for(int i=1;i<=n;i++)
if( !p[i] && a[k][i])
df(r,niv+1,i);
}
void ff(int r)
{ if(t[r]) ff(t[r]);
t[t[r]]=r;
}
void lant(int r)
{ if(t[r]) lant(t[r]);
fout<<r<<" ";
}
void main()
{ citire();
for(int i=1;i<=n;i++)
if(f[i]==0)
{ for(int j=1;j<=n;j++)
p[j]=0;
df(i,0,i);
}
ff(mx); t[mx]=0;
lant(my);
}
|