Submission #369480

#TimeUsernameProblemLanguageResultExecution timeMemory
369480MilosMilutinovicK blocks (IZhO14_blocks)C++14
0 / 100
1 ms492 KiB
#include <bits/stdc++.h>

using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  int n, k;
  cin >> n >> k;
  vector<int> a(n);
  for (int i = 0; i < n; i++) {
    cin >> a[i];
  }
  const int inf = (int) 1e9;
  vector<vector<int>> dp(n, vector<int>(k, inf));
  int curr = 0;
  for (int i = 0; i < n; i++) {
    curr = max(curr, a[i]);
    dp[i][0] = curr;
  }
  for (int i = 1; i < k; i++) {
    for (int j = 0; j < n; j++) {
      int mx = 0;
      for (int l = j; l >= 0; l--) {
        mx = max(mx, a[l]);
        dp[j][i] = min(dp[j][i], dp[l][i - 1] + mx);
      }
    }
  }
  cout << dp[n - 1][k - 1] << '\n';
  return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...