Submission #1307021

#TimeUsernameProblemLanguageResultExecution timeMemory
1307021yumemysteryStove (JOI18_stove)C++17
100 / 100
43 ms2460 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,vector<int>,greater<int>>gap;

    int ans = 0;

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

    while (!gap.empty() && gap.size() > k-1) {
        ans+=gap.top();
        gap.pop();
    }

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