# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1165631 | spycoderyt | Feast (NOI19_feast) | C++20 | 1095 ms | 12140 KiB |
#include <bits/stdc++.h>
#define int long long
using namespace std;
/*
instead of enforcing K, we find the lambda that produces K, then just do cost + lambda * K
*/
const int N = 3e5+5;
int a[N],dp[N][2][2];
int32_t main() {
int n,k;
cin >> n >> k;
for(int i = 1;i<=n;i++)cin>>a[i];
for(int j = 1;j<=k;j++) {
for(int i = 1;i<=n;i++) {
dp[i][j][0] = max(dp[i-1][j][0],dp[i-1][j][1]);
dp[i][j][1] = max(dp[i-1][j-1][0] + a[i], dp[i-1][j][1] + a[i]);
// cerr << i << " " << j << " " << dp[i][j][0] << " " << dp[i][j][1]<<"\n";
}
}
cout << max(dp[n][k][0],dp[n][k][1]);
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |