#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
long long d[1000010];
int dp[1010][35][2];
int a[1010];
int main() {
int T, W;
cin >> T >> W;
for (int i = 1; i <= T; ++i) {
scanf("%d", &a[i]);
}
memset(dp, -0x3f3f3f3f, sizeof(dp));
dp[0][W][1] = 0;
for (int i = 1; i <= T; ++i) {
for (int j = W; j >= 0; --j) {
dp[i][j][1] = max(dp[i][j][1],
max(dp[i - 1][j + 1][0] + (a[i] == 1),
dp[i - 1][j][1] + (a[i] == 1)));
dp[i][j][0] = max(dp[i][j][0],
max(dp[i - 1][j + 1][1] + (a[i] == 2),
dp[i - 1][j][0] + (a[i] == 2)));
}
}
int result = 0;
for (int j = 0; j <= W; ++j) {
result = max(result, dp[T][j][0]);
result = max(result, dp[T][j][1]);
}
printf("%d\n", result);
}
POJ 2385 Apple Catching
最新推荐文章于 2023-07-11 08:55:15 发布