Submission #1349986

#TimeUsernameProblemLanguageResultExecution timeMemory
1349986bakhtiyarnStove (JOI18_stove)C++20
100 / 100
26 ms5916 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long

const int N = 3e5+5;
int a[N];

// for(int i=1; i<=n; i++) 
void solve(){
  int n, k; cin >> n >> k;
  for(int i=1; i<=n; i++) cin >> a[i];
  
  int use = n;
  for(int i=2; i<=n; i++) {
    if(a[i]-a[i-1]-1 == 0) use--;
  }
  
  
  multiset<int> ms;
  for(int i=2; i<=n; i++) {
    if(a[i]-a[i-1]-1) ms.insert(a[i]-a[i-1]-1);
  }

  int ans = n;
  
  while(ms.size() and use > k){
    auto it = ms.begin();
    int ara = *it;
    ms.erase(it);
    
    ans += ara;
    
    use--;
  }
  cout << ans << '\n';
}

signed main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  solve();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...