제출 #753042

#제출 시각아이디문제언어결과실행 시간메모리
753042OlympiaK blocks (IZhO14_blocks)C++17
0 / 100
1 ms316 KiB
#include <vector>
#include <iostream>
#include <cassert>
#include <cmath>
#include <map>
#include <set>
using namespace std;
int main () {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int N, K;
    cin >> N >> K;
    int64_t arr[N];
    for (int i = 0; i < N; i++) {
        cin >> arr[i];
    }
    int64_t INF = 1e17;
    int64_t dp[N + 1][K + 1];
    for (int i = 0; i <= N; i++) {
        for (int j = 0; j <= K; j++) {
            dp[i][j] = INF;
        }
    }
    for (int i = 0; i <= N; i++) {
        if (i != 0) {
        dp[i][1] = 0;
            for (int l = 0; l < i; l++) {
                dp[i][1] = max(dp[i][1], arr[l]);
            }
        }
        for (int j = 2; j <= K; j++) {
            int64_t myMax = 0;
            for (int l = i - 1; l >= 0; l--) {
                myMax = max(myMax, arr[l]);
                dp[i][j] = min(dp[i][j], dp[l][j - 1] + myMax);
            }
            cout << i << " " << j << " " << dp[i][j] << endl;
        }
    }
    cout << dp[N][K] << endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...