【题目分析】
DP
【代码】
#include <cstdio>
#define max(a,b) a>b?a:b
int x,n,ans=0;
int f[60][270000];
int main()
{
scanf("%d",&n);
for (int i=1;i<=n;++i)
scanf("%d",&x),f[x][i]=i+1;
for (int i=2;i<=58;++i)
for (int j=1;j<=n;++j)
{
if (!f[i][j]) f[i][j]=f[i-1][f[i-1][j]];
if (f[i][j]) ans=i;
}
printf("%d\n",ans);
}