[NOIP2015]跳石头(二分)

[NOIP2015]跳石头

#include <bits/stdc++.h>
using namespace std;

const int N = 50010;

long long len;
int n, m;
long long a[N];

bool check(long long mid){
    long long b = 0;
    int res = 0;
    for(int i = 0; i <= n; ++i){
        if(a[i] - b < mid) ++res;
        else b = a[i];
    }
    return res <= m;
}
signed main(){
    cin >> len >> n >> m;
    for(int i = 0; i < n; ++i) cin >> a[i];
    a[n] = len;
    long long l = 1, r = len;
//     cout << r << endl;
    while(l < r){
        long long mid = (l + r + 1) >> 1;
        if(check(mid)) l = mid;
        else r = mid - 1;
    }
    
    cout << l << endl;
    
    return 0;
}
posted @ 2025-03-28 12:02  awei040519  阅读(13)  评论(0)    收藏  举报