#include #include #include #include #include #include #include #include #include #include using ll = long long; using namespace std; int main(){ int n; cin >> n; // i 番目にお皿を取る場合、max(dp[i-2][0] + v[i], dp[i-1][0] + v[i]) // i 番目にお皿を取らない場合、max(dp[i-2][1], dp[i-1][1]) vector> dp(n+1, vector(2)); vector v(n+1); for (int i = 1; i <= n; i++) cin >> v[i]; dp[1][1] = v[1]; for (int i = 2; i <= n; i++){ dp[i][0] = max(dp[i-1][1], dp[i-2][1]); dp[i][1] = max(dp[i-2][0] + v[i], dp[i-1][0] + v[i]); } cout << max(dp[n][0], dp[n][1]) << endl; }