30pts求调 玄关
查看原帖
30pts求调 玄关
1155991
I_Love_Kobe楼主2024/8/29 09:42
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,a[100015],l=1,r=1000000001;
bool check(int mid){
    int sum=0;
    for(int x=1,y=2;y<=n;){
        if(a[y]-a[x]>=mid){
            sum++,x=y;
        }
        y++;
    }
    return sum>=m;
}

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