#include <bits/stdc++.h>
using namespace std;
#define rep(i, a, b) for(int i = a; i < (b); ++i)
#define all(x) begin(x), end(x)
#define sz(x) (int)(x).size()
#define pb push_back
typedef long long ll;
typedef pair<int, int> pii;
typedef vector<int> vi;
mt19937 rng;
ll part(vector<int> a) {
int N = sz(a);
ll sum = 0;
for (int i : a) sum += i;
vector<ll> pre;
ll cur = 0, res = -1;
for (int i = 0; i < N; i++) {
ll x = sum - cur;
if (i >= 2) {
if (cur >= 2 * x) {
int j = lower_bound(all(pre), 2 * x) - pre.begin();
assert(pre[j] >= 2 * x);
if (cur - pre[j] >= 2 * pre[j]) {
res = max(res, x);
}
}
if (pre[0] <= cur - 2 * x) {
int j = lower_bound(all(pre), cur - 2 * x + 1) - pre.begin() - 1;
assert(cur - pre[j] >= 2 * x);
if (pre[j] >= 2 * (cur - pre[j])) {
res = max(res, x);
}
}
int j = lower_bound(all(pre), (2 * cur + 2) / 3) - pre.begin();
if (j + 1 < i && x >= 2 * pre[j]) {
res = max(res, cur - pre[j]);
}
}
cur += a[i];
pre.pb(cur);
}
return res;
}
void solve() {
int N; cin >> N;
assert(3 <= N && N <= 100000);
vector<int> a(N);
for (int i = 0; i < N; i++) cin >> a[i], assert(1 <= a[i] && a[i] <= 1000000000);
ll res = part(a);
reverse(all(a));
res = max(res, part(a));
cout << res << "\n";
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
rng = mt19937(chrono::steady_clock::now().time_since_epoch().count());
solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiAKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAojZGVmaW5lIHJlcChpLCBhLCBiKSBmb3IoaW50IGkgPSBhOyBpIDwgKGIpOyArK2kpCiNkZWZpbmUgYWxsKHgpIGJlZ2luKHgpLCBlbmQoeCkKI2RlZmluZSBzeih4KSAoaW50KSh4KS5zaXplKCkKI2RlZmluZSBwYiBwdXNoX2JhY2sKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgcGFpcjxpbnQsIGludD4gcGlpOwp0eXBlZGVmIHZlY3RvcjxpbnQ+IHZpOwogCm10MTk5Mzcgcm5nOwogCmxsIHBhcnQodmVjdG9yPGludD4gYSkgewogICAgaW50IE4gPSBzeihhKTsKICAgIGxsIHN1bSA9IDA7CiAgICBmb3IgKGludCBpIDogYSkgc3VtICs9IGk7CiAgICB2ZWN0b3I8bGw+IHByZTsKICAgIGxsIGN1ciA9IDAsIHJlcyA9IC0xOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyBpKyspIHsKICAgICAgICBsbCB4ID0gc3VtIC0gY3VyOwogICAgICAgIGlmIChpID49IDIpIHsKICAgICAgICAgICAgaWYgKGN1ciA+PSAyICogeCkgewogICAgICAgICAgICAgICAgaW50IGogPSBsb3dlcl9ib3VuZChhbGwocHJlKSwgMiAqIHgpIC0gcHJlLmJlZ2luKCk7CiAgICAgICAgICAgICAgICBhc3NlcnQocHJlW2pdID49IDIgKiB4KTsKICAgICAgICAgICAgICAgIGlmIChjdXIgLSBwcmVbal0gPj0gMiAqIHByZVtqXSkgewogICAgICAgICAgICAgICAgICAgIHJlcyA9IG1heChyZXMsIHgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChwcmVbMF0gPD0gY3VyIC0gMiAqIHgpIHsKICAgICAgICAgICAgICAgIGludCBqID0gbG93ZXJfYm91bmQoYWxsKHByZSksIGN1ciAtIDIgKiB4ICsgMSkgLSBwcmUuYmVnaW4oKSAtIDE7CiAgICAgICAgICAgICAgICBhc3NlcnQoY3VyIC0gcHJlW2pdID49IDIgKiB4KTsKICAgICAgICAgICAgICAgIGlmIChwcmVbal0gPj0gMiAqIChjdXIgLSBwcmVbal0pKSB7CiAgICAgICAgICAgICAgICAgICAgcmVzID0gbWF4KHJlcywgeCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaW50IGogPSBsb3dlcl9ib3VuZChhbGwocHJlKSwgKDIgKiBjdXIgKyAyKSAvIDMpIC0gcHJlLmJlZ2luKCk7CiAgICAgICAgICAgIGlmIChqICsgMSA8IGkgJiYgeCA+PSAyICogcHJlW2pdKSB7CiAgICAgICAgICAgICAgICByZXMgPSBtYXgocmVzLCBjdXIgLSBwcmVbal0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGN1ciArPSBhW2ldOwogICAgICAgIHByZS5wYihjdXIpOwogICAgfQogICAgcmV0dXJuIHJlczsKfQogCnZvaWQgc29sdmUoKSB7CiAgICBpbnQgTjsgY2luID4+IE47CiAgICBhc3NlcnQoMyA8PSBOICYmIE4gPD0gMTAwMDAwKTsKICAgIHZlY3RvcjxpbnQ+IGEoTik7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IE47IGkrKykgY2luID4+IGFbaV0sIGFzc2VydCgxIDw9IGFbaV0gJiYgYVtpXSA8PSAxMDAwMDAwMDAwKTsKICAgIGxsIHJlcyA9IHBhcnQoYSk7CiAgICByZXZlcnNlKGFsbChhKSk7CiAgICByZXMgPSBtYXgocmVzLCBwYXJ0KGEpKTsKICAgIGNvdXQgPDwgcmVzIDw8ICJcbiI7Cn0KIAppbnQgbWFpbigpIHsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CiAgICBybmcgPSBtdDE5OTM3KGNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKS50aW1lX3NpbmNlX2Vwb2NoKCkuY291bnQoKSk7CiAKICAgIHNvbHZlKCk7CiAKICAgIHJldHVybiAwOwp9Cg==