#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 6;
int n, a[N], dp[3][N][2];
int dfs(int x, int s, int pre) {
if (s < 0) return INT_MIN;
if (dp[s][x][pre] != INT_MIN) return dp[s][x][pre];
if (x == n + 1) return (!s) ? 0 : INT_MIN;
int ans = INT_MIN;
if (!pre) ans = max(ans, dfs(x + 1, s - 1, 1));
else ans = max(ans, dfs(x + 1, s, 1));
ans = max(ans, dfs(x + 1, s, 0) + a[x]);
return dp[s][x][pre] = ans;
}
int main() {
scanf("%d", &n);
for (int i = 1; i <= n; ++i)
scanf("%d", &a[i]), dp[0][i][0] = dp[0][i][1] = dp[1][i][0] = dp[1][i][1] = dp[2][i][0] = dp[2][i][1] = INT_MIN;
printf("%d", dfs(1, 2, 0));
return 0;
}
第二个测试点WA了,看了一下正确输出是200我的输出是0