Submission #1180642

#TimeUsernameProblemLanguageResultExecution timeMemory
1180642noobsolver24Stove (JOI18_stove)C++20
100 / 100
12 ms2244 KiB
#include "bits/stdc++.h"
using namespace std;

#define int long long
#define endl '\n'
#define all(v) v.begin(), v.end()

const long long sz = 1e5 + 5;
const long long sz1 = 1e7 + 5;
const long long inf = 1e18 + 1;
const long long mod = 1e9 + 7;

int a[sz];

void solve() {
    int n, k;
    cin >> n >> k;
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
    }
    if (k == n) {
        cout << k << endl;
        return;
    }
    if (k == 1) {
        cout << a[n] << endl;
        return;
    }
    vector<int> dif;
    for (int i = 2; i <= n; i++) {
        dif.push_back(a[i] - a[i - 1]);
    }
    sort(all(dif));
    int cnt = n - k, ans = k;
    for (auto d : dif) {
        if (cnt > 0) {
            ans += d;
            cnt--;
        } else break;
    }
    cout << ans << endl;
}

signed main() {
    cin.tie(nullptr)->sync_with_stdio(0);
    int T = 1;
    // cin >> T;
    while (T--) {
        solve();
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...