如题 3,4,6,9WA 其它AC
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
long long n,c,maxx=-1,mid,minn=100000000000;
long long a[5000000];
bool check(int x)
{
long long num=1;
long long temp=1;
for(int i=2;i<=n;i++)
{
if((a[i]-a[temp])>=x&&i>temp)
{
num++;temp=i;
}
}
if(num>=c) return true;
else return false;
}
int main()
{
cin>>n>>c;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
for(int i=1;i<=n-1;i++)
{
if(i<n) maxx=(maxx<a[i])?a[i]:maxx;
minn=(minn<a[i])?minn:a[i];
}
sort(a+1,a+n+1);
long long l=1,r=maxx-minn;
while(l<=r)
{
mid=(l+r)/2;
if(check(mid)) l=mid+1;
else r=mid-1;
}
cout<<mid;
}