看了题解,思路应该是对的,就是样例过不去,不知道哪里写错了
#include <bits/stdc++.h>
using namespace std;
int n,dp[60][262222],a[262222],t,maxx;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
dp[a[i]][i]=i+1;
}
for(int i=2;i<=58;i++)
{
for(int j=1;j<=n;j++)
{
if(!dp[i][j]) dp[i][j]=dp[i-1][dp[i-1][j]];
}
}
for(int i=2;i<=58;i++)
{
for(int j=1;j<=n;j++)
{
maxx=max(maxx,dp[i][1]);
}
}
cout<<maxx;
return 0;
}