#include #include #include #include #include #include #include #include #include #include using namespace std; const int N = 1e5 + 5; int a[N], a0[N], lg[N]; map mp; int main() { int n; cin >> n; lg[0] = lg[1] = 0; for(int i = 2; i < N; ++i) lg[i] = lg[i/2] + 1; for(int i = 0; i < n; ++i) { scanf("%d", &a[i]); a0[i] = a[i]; } sort(a0, a0+n); long long rd = a0[n-1] + a0[n-2], ld = rd - 32; long long ans = -1e12; for(int i = 0; i < n; ++i) { for(long long j = ld - a[i]; j <= rd - a[i]; ++j) { if(mp.count(j)) { int ii = mp[j]; long long s = a[ii] + a[i] - lg[i-ii]; ans = max(ans, s); } } mp[a[i]] = i; } cout << ans << endl; return 0; }