RT,开到3e5也没用
#include<bits/stdc++.h>
namespace IO {
inline int read() {
int ret = 0, f = 1;char ch = getchar();
while (ch < '0' || ch > '9') {
if (ch == '-') f = -f;
ch = getchar();
}
while (ch >= '0' && ch <= '9') {
ret = (ret << 1) + (ret << 3) + (ch ^ 48);
ch = getchar();
}
return ret * f;
}
void write(int x) {
if (x < 0) putchar('-'), x = -x;
if (x > 9) write(x / 10);
putchar(x % 10 + '0');
}
}
using namespace IO;
using namespace std;
const int maxn = 270000 + 5;
const int maxnum = 100 + 5;
int n;
int dp[maxnum][maxn];
int main() {
n = read();
for (int i = 1;i <= n;i++) {
int x = read();
dp[x][i] = i + 1;
}
int ans = 0;
for (int num = 2;num <= maxnum;num++) {
for (int j = 1;j <= n;j++) {
if (!dp[num][j]) dp[num][j] = dp[num - 1][dp[num - 1][j]];
if (dp[num][j]) ans = max(ans, num);
}
}
write(ans), puts("");
return 0;
}