90求条
查看原帖
90求条
1423201
DavidFisher楼主2025/7/31 09:04

感觉得恶补二分基础了

#include <bits/stdc++.h>
using namespace std;
int n,c;
int s[100005];
bool j(int x) {
    int t=s[0];
    int cnt=1;
    for(int i=1; i<n; i++) {
        if(s[i]-t>=x) {
            cnt++;
            t=s[i];
            if(cnt>=c)
                return 1;
        }
    }
    return 0;
}
int main() {
    scanf("%d%d",&n,&c);
    for(int i=0; i<n; i++)
        scanf("%d",&s[i]);
 
    sort(s,s+n);
 
    int l=0,r=s[n-1]-s[0];
    while(l<=r) {
        int mid=(l+r)/2;
        if(j(mid))
            l=mid+1;
        else
            r=mid-1;
    }
 
    printf("%d\n",r);
 
    return 0;
}
2025/7/31 09:04
加载中...