Submission #811418

#TimeUsernameProblemLanguageResultExecution timeMemory
811418vjudge1K blocks (IZhO14_blocks)C++17
0 / 100
1 ms468 KiB
#include <bits/stdc++.h>
using namespace std;

int32_t main() {
        ios_base::sync_with_stdio(0);
        cin.tie(0);
        int n, k;
        cin >> n >> k;
        vector<int> a(n);
        for (int i = 0; i < n; i++) cin >> a[i];
        vector<int64_t> dp(n + 1, 1e18);
        dp[0] = 0;
        for (int i = 1; i <= k; i++) {
                assert(is_sorted(dp.begin() + i - 1, dp.end()));
                vector<int64_t> ndp(n + 1, 1e18);
                for (int j = 1; j <= n; j++) {
                        int add = 0;
                        for (int z = j - 1; ~z; z--) {
                                add = max(add, a[z]);
                                ndp[j] = min(ndp[j], dp[z] + add);
                        }
                }
                dp = ndp;
        }
        cout << dp[n];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...