Submission #779090

#TimeUsernameProblemLanguageResultExecution timeMemory
779090vjudge1Stove (JOI18_stove)C++17
50 / 100
1012 ms1452 KiB
#include <bits/stdc++.h>

using namespace std;

int n, k;
vector <int> dp, v;

int main()
{
    ios_base :: sync_with_stdio(0);
    cin.tie(0);

//    freopen("stove.in", "r", stdin);
//    freopen("stove.out", "w", stdout);

    cin >> n >> k;
    dp.resize(n + 1, INT_MAX);
    v.resize(n + 1);

    dp[1] = 1;

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

    for(int i = 2; i <= n; i ++)
    {
        int last = min(k, i);
        for(int j = last; j >= 2; j --)
        {
            if(dp[j] != INT_MAX)
                dp[j] = min(dp[j] + v[i] - v[i - 1], dp[j - 1] + 1);
            else
                dp[j] = dp[j - 1] + 1;
        }
        dp[1] = dp[1] + v[i] - v[i - 1];

    }

    cout << dp[k];
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...