0
已解决
李泽屿
新手启示者
新手启示者
题目链接: 酷町堂:1626
#include<iostream>
#include<algorithm>
using namespace std;
int n,m,a[100005];
bool check(int w){
int pos=a[1],cnt=0;
for(int i=2;i<=n;i++){
if(a[i]-pos>=w){
cnt++;
pos=a[i];
}
}
return cnt>=m;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+n+1);
int l=1,r=n;
while(l<r){
int mid=(l+r+1)/2;
if(check(mid)){
l=mid;
}else{
r=(l+r)/2;
}
}
cout<<l;
return 0;
}
不会...