제출 #1350005

#제출 시각아이디문제언어결과실행 시간메모리
1350005waygonzStove (JOI18_stove)C++20
100 / 100
61 ms16304 KiB
#include <bits/stdc++.h>
#define int long long
#define float long double
#define pii pair<int, int>
#define tii tuple<int, int, int>
#define f first
#define s second
#define ve vector
#define emb emplace_back
#define em emplace

using namespace std;

const int inf = 1e18;
const int mod = 1e9 + 7;

int32_t main() {
    ios_base::sync_with_stdio(0); cin.tie(0);
    int n, k;
    cin >> n >> k;
    map<int, int> mp;
    while (n--) {
        int t;
        cin >> t;
        mp[t] = 1, mp[t+1] = max(mp[t+1], 0LL);
    }
    ve<pii> a;
    int prev = -1;
    for (auto &[x, y] : mp) {
        if (prev == -1) prev = x;
        if (y == 0) a.emb(prev, x), prev = -1;
    }
    ve<int> srt;
    for (int i = 0; i < a.size()-1; i++) srt.emb(a[i+1].f-a[i].s);
    sort(srt.rbegin(), srt.rend());
    int sum = a.back().s - a[0].f;
    for (int i = 0; i < min(k-1, (int)srt.size()); i++) sum -= srt[i];
    cout << sum;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...