代码:
#include <bits/stdc++.h>
using namespace std;
const int N = 250;
int n, ans = 0, a[N], f[N][N];
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
memset(f, -0x3f, sizeof(f));
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> a[i];
f[i][i] = a[i];
}
for (int len = 2; len <= n; len++)
for (int i = 1; i + len - 1 <= n; i++)
{
int j = i + len - 1;
for (int k = i; k < j; k++)
if (f[i][k] == f[k + 1][j])
{
f[i][j] = max(f[i][j], f[i][k] + 1);
ans = max(ans, f[i][j]);
}
}
cout << ans;
return 0;
}