UKE
查看原帖
UKE
981833
Joseph_J楼主2023/7/13 11:11
#include<bits/stdc++.h>

using namespace std;
int q[1000010];
int n,c,a;
bool check(int x)
{
    int num=0;
    int l=q[1];
    for(int i=2;i<=n;i++)
    {
        if(q[i]-l<x) num++; 
        else l=q[i];
        if(num>a) return false;
    }
    return true;
}
int main()
{ 
  cin>>n>>c;
  
  for(int i=1;i<=n;i++)
    cin>>q[i];
  sort(q+1,q+n+1); 
  a=n-c;
  int l=1; 
  int r=q[n]-q[1];
  int mid; 
  while(l+1<r)
  {
      mid=(l+r)/2;
      if(check(mid)) l=mid; 
      else r=mid; 
  }
  if(check(r)) cout<<r;
  else cout<<l;
  return 0;
}
2023/7/13 11:11
加载中...