Submission #1307017

#TimeUsernameProblemLanguageResultExecution timeMemory
1307017yumemysteryStove (JOI18_stove)C++17
0 / 100
2 ms572 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
    int n,k;
    cin >> n >> k;

    vector<int>T(n,0);
    vector<pair<int,int>>guest_group;
    
    for (auto &t: T) {
        cin >> t;
    }
    
    sort(T.begin(),T.end());

    for (auto &t : T) {
        if (guest_group.empty() || guest_group.back().second < t) guest_group.push_back({t,t+1});
        else guest_group.back() = {guest_group.back().first,t+1};
    }

    priority_queue<int>gap;
    
    sort(guest_group.begin(),guest_group.end());

    for (int i=0; i<guest_group.size()-1; i++) gap.push(guest_group[i+1].first-guest_group[i].second);

    int total_time = (T[n-1] + 1) - T[0];

    while (!gap.empty() && gap.size() >= k-2) {
        total_time -= gap.top();
        gap.pop();
        --k;
    }

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