跳石头

#include<bits/stdc++.h>
using namespace std;
int main(){
    int l,n,m;
    cin>>l>>n>>m;
    int a[n+5];
    for(int i = 1;i<=n;i++){
        cin>>a[i];
    }
    long left = 1,right = l,mid,sum = 0,num;
    long now;
    while(left<=right){
        mid = left+(right-left)/2;
        num = 0;
        now = 0;
        for(long i = 1;i<=n;i++){
            if(a[i]-a[now]<mid){
                num++;
            }else{
                now = i;
            }
        }
        if(num<=m){
            sum = mid;
            left = mid+1;
        }else{
            right = mid-1;
        }
    }
    cout<<sum;
    return 0;
}

 

posted @ 2024-12-27 19:32  王一行(小号)  阅读(5)  评论(0编辑  收藏  举报