#include<iostream>
#include <vector>
using namespace std;
vector<int> Wines;
vector<int> Maxs;
int Compare(int a, int b)
{
//a와 b중 큰 값을 반환
return a > b ? a : b;
}
int Dynamic()
{
int drinkNow = 0;
int notDrinkNow = 0;
int drinkedPrev = 0;
int notDrinkedPrev = 0;
for (int i = 3; i < Wines.size(); i++)
{
//Wines[i]을 마실 경우
//Wines[i-1]을 마셨을 경우 vs Wines[i-1]을 마시지 않았을 경우
drinkedPrev = Maxs[i - 3] + Wines[i - 1] + Wines[i];
notDrinkedPrev = Maxs[i - 2] + Wines[i];
drinkNow = Compare(drinkedPrev, notDrinkedPrev);
//Wines[i]을 마시지 않을 경우
notDrinkNow = Maxs[i - 1];
Maxs.push_back(Compare(drinkNow, notDrinkNow));
}
return Maxs[Wines.size() - 1];
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(nullptr);
cout.tie(nullptr);
int n;
cin >> n;
for (int i = 0; i < 3; i++)
{
Wines.push_back(0);
Maxs.push_back(0);
}
int amount;
for (int i = 0; i < n; i++)
{
cin >> amount;
Wines.push_back(amount);
}
cout << Dynamic() << "\n";
}