Submission #1368371

#TimeUsernameProblemLanguageResultExecution timeMemory
1368371ahmdnawazStove (JOI18_stove)C++20
100 / 100
12 ms2224 KiB
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>


using namespace std;
using namespace __gnu_pbds;

#define all(x) (x).begin(), (x).end()
#define endl '\n'

using ll = int64_t;


typedef tree<int, null_type, less<int>, rb_tree_tag, 
             tree_order_statistics_node_update> ordered_set;

// find_by_order(k) kth smallest
// order_of_key(key) num elements smaller then key


void test_case() {
    int n, k; cin >> n >> k;
    ll prev = -1;
    vector<ll> d, a;
    for (int i = 0; i < n; i++) {
        ll x; cin >> x;
        if (prev != -1) d.push_back(x - prev - 1);
        prev = x;
        a.push_back(x);
    }
    sort(all(d));
    reverse(all(d));
    ll val = 0;
    for (int i = 0; i < k - 1; i++)
        val += d[i];
    cout << *max_element(all(a)) - *min_element(all(a)) - val + 1 << endl;
}

int main() {	
    ios::sync_with_stdio(0);
    cin.tie(0);
    int T = 1;
    for (int i = 0; i < T; i++)
        test_case();
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...