Submission #703922

#TimeUsernameProblemLanguageResultExecution timeMemory
703922ngano_upat_naStove (JOI18_stove)C++17
100 / 100
21 ms3352 KiB
#include "bits/stdc++.h"
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    
    int n, k;
    cin >> n >> k;
    vector<int> v(n);
    for (auto &e:v) cin >> e;
    
    vector<pair<int,int>> intervals;
    int l = v[0], r = v[0] + 1;
    int cur = v[0];
    for (int i=1; i<n; i++) {
        if (v[i] == cur+1) {
            r = v[i] + 1;  
        }   
        else {
            intervals.push_back({l,r});
            l = v[i];
            r = v[i] + 1;
        }   
        cur = v[i];
    }   
    intervals.push_back({l,r});
    int sz = intervals.size();
    int sum = 0;
    for (auto &e:intervals) {
        sum += (e.second - e.first);
    }   
    
    vector<int> gap;
    for (int i=1; i<sz; i++) {
        int dif = intervals[i].first - intervals[i - 1].second;
        gap.push_back(dif);
        sum += dif;
    }   
    sort(gap.rbegin(),gap.rend());
    for (int i=0; i<min(k-1,(int)gap.size()); i++) {
        sum -= gap[i];
    }   
    cout << sum;
}   
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...