#include using namespace std; using ll = long long; using ull = unsigned long long; #ifndef __MACRO_H__ #define __MACRO_H__ #define all(collection) (collection).begin(), (collection).end() // begin to end #define rep(i, begin, end) for (ll i = begin; i < end; i++) // repeat #define repr(i, begin, end) for (ll i = begin; end < i; i--) // repeat reverse #endif int main(void) { ll n; cin >> n; // 最大で3つ前から取ってくるので、空要素を3つ追加 n += 3; vector v(n); rep(i, 3, n) cin >> v[i]; vector dp(n); rep(i, 3, n) dp[i] = max(dp[i-3] + v[i], dp[i-2] + v[i]); cout << max(dp[n-1], dp[n-2]); return 0; }