#include <cstdio> #include <iostream> #include <algorithm> using namespace std; int n,i,j,k; long long f[100100][17],res=1000000000; int main() { res*=-res; scanf("%d",&n); for (i=0; i<n; i++) { scanf("%d",&k); f[i][0]=k; } for (j=1; j<17; j++) for (i=0; i<n; i++) { f[i][j]=f[i][j-1]; k=i-(1<<(j-1)); if (k>=0) f[i][j]=max(f[i][j],f[k][j-1]); } for (i=1; i<n; i++) for (j=0; j<17; j++) { k=i-(1<<j); if (k<0) break; res=max(res,f[i][0]+f[k][j]-j); } cout<<res<<'\n'; return 0; }