#include <bits/stdc++.h>
using ll = long long;
using namespace std;
int main() {
std::ios_base::sync_with_stdio(false);
std::cin.tie(nullptr);
ll n, k;
cin >> n >> k;
vector<ll> a(n);
vector<ll> pref(n + 1);
vector<vector<ll>> dp(k + 1, vector<ll>(n + 1));
for (int i = 0; i < n; i++) {
cin >> a[i];
}
for (int i = 1; i <= n; i++) {
pref[i] = pref[i - 1] + a[i - 1];
}
for (int j = 1; j <= k; j++) {
ll best = -1e18;
for (int i = 1; i <= n; i++) {
best = max(best, dp[j - 1][i - 1] - pref[i - 1]);
dp[j][i] = best + pref[i];
dp[j][i] = max(dp[j][i - 1], dp[j][i]);
if(dp[j][i] < 0) dp[j][i] = 0;
}
}
cout << dp[k][n] << "\n";
return 0;
}
| # | 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... |