제출 #991537

#제출 시각아이디문제언어결과실행 시간메모리
991537coolboy19521Stove (JOI18_stove)C++17
100 / 100
56 ms6492 KiB
#include<bits/stdc++.h>

using namespace std;

int a[(int) 1e5 + 5];

int main() {
    cin.tie(nullptr)->sync_with_stdio(false);

    int n, k;
    cin >> n >> k;

    for (int i = 0; i < n; i ++) {
        cin >> a[i];
    }

    sort(a, a + n);

    set <pair <int, int>> pri;

    for (int i = 1; i < n; i ++) {
        pri.insert(make_pair(a[i] - a[i - 1], a[i - 1] + 1));
    }

    set <int> ep;

    while ((int) pri.size() > n - k) {
        ep.insert(pri.rbegin()->second);
        pri.erase(--pri.end());
    }

    ep.insert(a[n - 1] + 1);

    int r = 0;

    for (int i = 0; i < n; i ++) {
        r += (*ep.begin()) - a[i];

        while (a[i] < *ep.begin() && i < n) {
            i ++;
        }

        ep.erase(ep.begin());
        i --;
    }

    cout << r << '\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...