#include<bits/stdc++.h>
#define ff first
#define ss second
#define pb push_back
#define mp make_pair
using namespace std;
const long long INF = 1e18;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N, K;
cin >> N >> K;
vector<int> a(N+1);
for (int i = 1; i <= N; i++){
cin >> a[i];
}
vector<vector<long long>> dp(K+1, vector<long long>(N+1, INF));
dp[0][0] = 0;
for (int k = 1; k <= K; k++) {
for (int i = 1; i <= N; i++) {
long long mx = 0;
for (int j = i; j >= 1; j--) {
mx = max(mx, (long long)a[j]);
dp[k][i] = min(dp[k][i], dp[k-1][j-1] + mx);
}
}
}
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... |