Submission #1332213

#TimeUsernameProblemLanguageResultExecution timeMemory
1332213mr_hosbesStove (JOI18_stove)C++20
100 / 100
40 ms2336 KiB
//This was written by Nixat Aliyeff
#include <bits/stdc++.h>
#define ll long long
#define pb push_back
#define ff first
#define ss second
using namespace std;

void solve() {
    ll n, k;
    cin>>n>>k;
    vector<ll>t(n);
    for (ll i = 0; i < n; i++){
        cin >> t[i];
    }
    if (n == 0) {
        cout << 0 << endl;
        return;
    }
    ll ans = (t[n - 1] + 1) - t[0];
    vector<ll>diffs;
    for (ll i = 0; i < n - 1; i++) {
        ll gap = t[i + 1] - (t[i] + 1);
        if (gap > 0) {
            diffs.pb(gap);
        }
    }
    sort(diffs.rbegin(), diffs.rend());
    ll match = min((ll)diffs.size(), k - 1);
    for (ll i = 0; i < match; i++) {
        ans -= diffs[i];
    }

    cout << ans << endl;
}
int main() {
	ll t=1;
	while (t--) {
		solve();
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...