Submission #678028

#TimeUsernameProblemLanguageResultExecution timeMemory
678028vjudge1Stove (JOI18_stove)C++17
100 / 100
20 ms3008 KiB
#include<bits/stdc++.h>
#define ll long long
#define pb push_back
#define mp make_pair
#define ull unsigned long long
#define PI 3.141592653589793238

using namespace std;

ll binpow (ll a, ll b){
    if (b == 0) return 1;
    if (b & 1) return binpow(a, b - 1) * a;
    else return binpow(a, b / 2) * binpow(a, b / 2);
}
ll gcd(ll a, ll b){
    return (b ? gcd(b, a % b) : a);
}
ll nums(ll g){
    ll cur = 0;
    while(g){
        cur++, g /= 10;
    }

    return cur;
}

bool comp(vector <pair <ll, ll> > a, vector <pair <ll, ll> > b){
    return a.size() < b.size();
}

ll get1(ll q, ll g){
    ll cur = 1;

    for (ll i = q; i > g; i--){
        cur *= i;
    }

    return cur;
}

const ll mod = (ll)998244353;

ll n, k, t = 1, a[200005], p[200005];

vector <ll> v;

string s;

ll dp[500][500];

int main(){
    ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);

    //freopen("success.in", "r", stdin);
    //freopen("success.out", "w", stdout);

    cin >> n >> k;

    ll mn = (ll)1e15, mx = 0;

    for (ll i = 1; i <= n; i++){
        cin >> a[i];

        if (i > 1) v.pb(abs(a[i] - a[i - 1]));

        mn = min(mn, a[i]);
        mx = max(mx, a[i]);
    }

    ll ans = mx - mn + 1;

    sort (v.begin(), v.end());

    ll cur = v.size() - 1;

    while(cur >= 0 && k > 1){
        ans -= (v[cur] - 1);

        cur--;
        k--;
    }

    cout << ans;

    return 0;
}

/**

4 16

10100

20
00101
10100

24



*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...