#include <iostream>
#include <stdio.h>
using namespace std;
const int NMAX = 100001;
int s[NMAX], v[NMAX];
void functie (int inc, int sf, int &sum) {
int maxim, poz, sump;
if (sf - inc >= 6) {
maxim = s[inc];
poz = inc;
if (s[inc + 1] > maxim) {
maxim = s[inc + 1];
poz = inc + 1;
}
if (s[inc + 2] > maxim) {
maxim = s[inc + 2];
poz = inc + 2;
}
if (poz == inc) {
sum += s[inc];
functie (inc + 3, sf, sum);
}
else if (poz == inc + 1) {
if (s[inc] + s[inc + 3] >= s[inc + 1] + s[inc + 4]) {//alegem1
sum += s[inc];
functie (inc + 3, sf, sum);
}
else {
sum += s[inc + 1];
functie (inc + 4, sf, sum);
}
}
else {
sump = s[inc + 2] + s[inc + 5];
if (sump > s[inc + 1] + s[inc + 4] && sump > s[inc] + s[inc + 4] && sump > s[inc] + s[inc + 3]) {
sum += s[inc + 2];
functie (inc + 5, sf, sum);
}
else if (s[inc] + s[inc + 3] >= s[inc + 1] + s[inc + 4] || s[inc] + s[inc + 4] >= s[inc + 1] + s[inc + 4]) {
sum += s[inc];
functie (inc + 3, sf, sum);
}
else {
sum += s[inc + 1];
functie (inc + 4, sf, sum);
}
}
}
else {
if (sf - inc == 1)
sum += s[inc];
if (sf - inc == 2)
sum += max (s[inc], s[inc + 1]);
if (sf - inc == 3)
sum += max (s[inc], max(s[inc + 1], s[inc + 2]));
if (sf - inc == 4)
sum += max (s[inc] + s[inc + 3], max(s[inc + 1], s[inc + 2]));
if (sf - inc == 5)
sum += max (max(s[inc] + s[inc + 3], s[inc] + s[inc + 4]), max (s[inc + 1] + s[inc + 4], s[inc + 2]));
}
}
int main() {
freopen ("oo.in", "r", stdin);
freopen ("oo.out", "w", stdout);
int n, i, s1, s2, s3, s4;
scanf ("%d", &n);
for (i = 1; i <= n; i++) {
scanf ("%d", &v[i]);
s[i - 1] = v[i - 1] + v[i];
}
///primul si ultimul
s1 = v[1] + v[n];
functie (3, n - 2, s1);
s2 = v[1] + v[2];
functie (4, n - 1, s2);
s3 = v[2] + v[3];
functie (5, n, s3);
s4 = v[3] + v[4];
functie (6, n, s4);
printf ("%d", max (max(s1, s2), max(s3, s4)));
return 0;
}