#include #include #define f first #define s second using namespace std; int rmq[32][300010]; int main () { //freopen ("file.in", "r", stdin); int n; scanf ("%d", &n); for (int i = 1; i <= n; ++i) scanf ("%d", &rmq[0][i]); for (int i = 1; (1 << i) <= n; ++i) for (int j = 1; j <= n; ++j) rmq[i][j] = max (rmq[i - 1][j], rmq[i - 1][j + (1 << (i - 1))]); long long rez = -2000000000000000LL; for (int i = 1; i < n; ++i) for (int j = 0; (1 << j) <= n; ++j) rez = max (rez, 1LL * rmq[0][i] + 1LL * rmq[j][i + (1 << j)] - 1LL * j); printf ("%lld\n", rez); return 0; }