50pts求调 玄关
查看原帖
50pts求调 玄关
1155991
I_Love_Kobe楼主2024/8/30 11:40

蒟蒻的代码:

#include<bits/stdc++.h>
#define int long long
using namespace std;
int L,n,m,a[50015],l,r,ans;
bool check(int mid){
    int sum=0;
    for(int x=1,y=2;y<=n+1;y++){
        if(a[y]-a[x]<mid){
            sum++;
        }
        else{
            x=y;
        }
    }
    if(sum>m){
        return 0;
    }
    else{
        return 1;
    }
}

signed main(){
    cin>>L>>n>>m;
    l=1,r=L;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    a[n+1]=m;
    while(l<r){
        int mid=(l+r)>>1;
        if(check(mid)){
            ans=mid;
            l=mid+1;
        }
        else{
            r=mid-1;
        }
    }
    cout<<ans;
    return 0;
}
2024/8/30 11:40
加载中...