Submission #1003758

#TimeUsernameProblemLanguageResultExecution timeMemory
1003758codexistentStove (JOI18_stove)C++14
100 / 100
61 ms6484 KiB
#include <iostream>
#include <set>
#include <algorithm>
using namespace std;
#define MAXN 100005
#define FOR(i, a, b) for(int i = a; i <= b; i++)

int n, m, arr[MAXN];

int main(){
    cin >> n >> m;
    FOR(i, 1, n) cin >> arr[i];
    sort(arr + 1, arr + 1 + n);

    multiset<int> s;
    FOR(i, 1, n - 1) s.insert(arr[i + 1] - arr[i] - 1);

    int res = arr[n] - arr[1] + 1;
    m = (m == 0) ? 0 : m - 1;
    while(s.size() && m){
        res -= *(s.rbegin());
        s.erase(s.find(*(s.rbegin())));
        m--;
    }

    cout << res << endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...