#include using namespace std; const int MAX_N = 100000 + 1; const int MAX_LG = 17; int rmq[MAX_LG][MAX_N]; int N; int main() { ios_base::sync_with_stdio(false); cin >> N; for (int i = 1; i <= N; ++i) cin >> rmq[0][i]; for (int i = 1; (1 << i) <= N; ++i) for (int j = 1; j + (1 << i) - 1 <= N; ++j) { int p = 1 << (i - 1); rmq[i][j] = max(rmq[i - 1][j], rmq[i - 1][j + p]); } long long sol = numeric_limits::min() / 2; for (int i = 1; i <= N; ++i) for (int j = 0; i + (1 << j) - 1 <= N; ++j) { int p = (1 << j); sol = max(sol, static_cast(1LL * rmq[0][i] + rmq[j][i + p] - j)); } cout << sol << "\n"; return 0; }