#include #define FOR(i,a,b) for(int i=(a);i<(b);++i) #define rep(i,n) FOR(i,0,n) #define repr(i,n) for(int i=(n)-1;0<=i;--i) #define each(e,v) for(auto&& e:(v)) #define all(v) begin(v),end(v) #define DUMP(x) cerr<<#x<<": "<<(x)<; using vdouble = vector; using vstring = vector; using ll = long long; template void chmin(T& a, const T& b) { a = min(a, b); } template void chmax(T& a, const T& b) { a = max(a, b); } vint v, memo; int dfs(int i) { if(i < 0) return 0; if(memo[i] >= 0) return memo[i]; if(i == 0) return v[0]; memo[i] = max(dfs(i-2), dfs(i-3)) + v[i]; return memo[i]; } int main() { int n; cin >> n; v = vint(n); memo = vint(n, -1); rep(i, n) cin >> v[i]; cout << dfs(n-1) << endl; return 0; }