#include <fstream>
#define DIM 100010
using namespace std;
ifstream fin ("oo.in" );
ofstream fout("oo.out");
int n, m, i, j, k, ok, minim;
int d[4][DIM], maxim, x, y;
void SetUp(){
fin >> n;
for(i = 1; i <= n; i ++)
fin >> d[0][i];
return;
}
int best(int a, int b){
if(a >= b) return a;
if(a <= b) return b;
}
void Dinamyc(){
d[0][n+1] = d[0][1];
d[1][1] = d[0][1] + d[0][2];
for(i = 3; i < n; i ++){
x = d[1][i-1];
y = d[1][i-3] + d[0][i-1] + d[0][i];
d[1][i] = best(x, y);
}
maxim = best(maxim, d[1][n-1]);
for(i = 3; i <= n; i ++){
x = d[2][i-1];
y = d[2][i-3] + d[0][i-1] + d[0][i];
d[2][i] = best(x, y);
}
maxim = best(maxim, d[2][n-0]);
for(i = 4; i<=n+1; i ++){
x = d[3][i-1];
y = d[3][i-3] + d[0][i-1] + d[0][i];
d[3][i] = best(x, y);
}
maxim = best(maxim, d[3][n+1]);
fout << maxim;
return;
}
int main(){
SetUp();
Dinamyc();
return 0;
}