#include<bits/stdc++.h>
#include <numeric>

using namespace std;
typedef long long ll;
#define rep(i, n) for (ll i = 0; i < (ll)(n); ++i)
#define erep(i, n) for (ll i = 0; i <= (ll)(n); ++i)
#define FOR(i,a,b) for (ll i = (a); i < (ll)(b); ++i)
#define EFOR(i,a,b) for (ll i = (a); i <= (ll)(b); ++i)
template<class T>bool chmax(T &a, const T &b) { if (a<b) { a=b; return 1; } }
template<class T>bool chmin(T &a, const T &b) { if (b<a) { a=b; return 1; } }

typedef pair<ll, ll> P;


int main() {
    ll n; cin >> n;
    vector<ll> a(n);
    rep(i, n) cin >> a[i];

    vector<vector<ll>> dp(n, vector<ll>(n+1, -LONG_MAX));
    dp[0][0] = 0;
    dp[0][1] = a[0];
    dp[1][0] = 0;
    dp[1][1] = max(a[0], a[1]);

    for(int i=2; i<n; i++) {
        // iを選んで, i/2の状態
        chmax(dp[i][i/2], dp[i-2][(i/2)-1] + a[i]);
        // iをえらばず, i/2の状態
        chmax(dp[i][i/2], dp[i-1][i/2]);
        // iを選んで, (i+1)/2個選ばれてる状態
        chmax(dp[i][(i+1)/2], dp[i-2][((i+1)/2)-1] + a[i]);
        // iを選ばず, (i+1)/2個選ばれてる状態(ありえないはず)
    }

    cout << dp[n-1][n/2] << endl;

    return 0;
}
