제출 #637000

#제출 시각아이디문제언어결과실행 시간메모리
637000bonkStove (JOI18_stove)C++14
0 / 100
39 ms98252 KiB
#include <bits/stdc++.h>

using namespace std;

const int N = 5002;
int dp[N][N], a[N];
int n, k;

int f(int idx, int k){
    if(k < 0) return INT_MAX;
    if(idx > n) return 0;
    int &cur = dp[idx][k];

    if(cur != -1) return cur;

    cur = INT_MAX;

    for(int i = idx; i <= n; i++){
        cur = min(cur, f(i + 1, k - 1) + a[i] - a[idx] + 1);
    }

    return cur;
}

int main(){
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    memset(dp, -1, sizeof(dp));

    cin >> n >> k;
    for(int i = 1; i <= n; i++) cin >> a[i];

    cout << f(1, k) << '\n';

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...