Submission #1331110

#TimeUsernameProblemLanguageResultExecution timeMemory
1331110norrawichzzzStove (JOI18_stove)C++20
0 / 100
0 ms344 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long 
#define pi pair<int,int>

const int INF = 4e18;

void solve() {
    int n,k;
    cin>> n>> k;

    vector<int> a(n);
    for (int i=0; i<n; i++) cin>> a[i];

    int l=2, r=a[n-1] - a[0]+2;
    
    int ans = a[n-1] - a[0]+2;
    while (l<=r) {
        int mid = (l+r)/2;

        int f=a[0], cnt=1, op=0;
        for (int i=1; i<n; i++) {
            if (a[i]+1 - f > mid) {
                cnt++;
                op += a[i-1]+1 - f; 
                f=a[i];
            }
        }
        op += a[n-1]+1 - f; 
        if (cnt <= k) ans = min(ans, op);

        cout<< cnt<< ' '<< op<< ' '<< mid<< '\n';
        if (cnt >= k) l=mid+1;
        else r=mid-1;
    }
    cout<< ans<< '\n';
}

int32_t main() {
    cin.tie(0)->sync_with_stdio(0);


    int t;
    t=1;

    while (t--) {
        solve();
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...