Submission #1310684

#TimeUsernameProblemLanguageResultExecution timeMemory
1310684bahaktlStove (JOI18_stove)C++20
100 / 100
17 ms2248 KiB
#include <bits/stdc++.h>

#define int long long 
#define pb push_back
using namespace std;

const int N=3e5+10;
const int inf=9e18;
const int mod=1e9+7;

int a[N];
int dp[N];
int pref[N];

vector<pair<int,int>>v[N];

int t[N*4];

void update(int v,int tl,int tr,int val,int pos) {
    if(tl==tr) {
        t[v]=val;
        return;
    }
    int m=(tl+tr)/2;
    if(m>=pos) {
        update(v*2,tl,m,val,pos);
    }
    else {
        update(v*2+1,m+1,tr,val,pos);
    }
    t[v]=min(t[v*2],t[v*2+1]);
}
int get(int v,int tl,int tr,int l,int r) {
    if(r>=tr && tl>=l) {
        return t[v];
    }
    if(tr<l || tl>r) return inf;
    int m=(tl+tr)/2;
    return  min(get(v*2+1,m+1,tr,l,r),get(v*2,tl,m,l,r));
}

signed main() {
    ios_base::sync_with_stdio(NULL);
    cin.tie(NULL);
    int T=1;
    // cin>>T;
    while(T--) {
        int n,k;
        cin>>n>>k;
        k--;
        for(int i=1;i<=n;i++) cin>>a[i];
        sort(a+1,a+n+1);
        int ans=n;
        vector<int>v;
        for(int i=2;i<=n;i++) {
            v.pb(a[i]-a[i-1]-1);
        }
        sort(v.begin(),v.end());
        for(int i=1;i<=n-k-1;i++) {
            ans+=v[i-1];
            //cout<<v[i-1]<<' ';
        }
        cout<<ans<<"\n";
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...