有手就行- 0 -.
二分答案+排序ck即可.
代码如下:

#include <bits/stdc++.h>
using namespace std;
const int N=5e4+3;
int x[N],n,R;
bool ck(int k)//看下这个值是否可行.
{
    int res=0;int jl=2*k;
    for(int i=1;i<=n;)
    {
        int j=i;
        while(x[j]-x[i]<=jl&&j!=n+1)    { j++;  }
        i=j;
        res++;
    }
    return R>=res;
}

int main()
{
    cin>>n>>R;
    for(int i=1;i<=n;i++)   cin>>x[i];
    sort(x+1,x+1+n);
    int ans=2e9;
    int l=1,r=2e9;
    while(l<=r)
    {
        int mid=(l+r)>>1;
        if(ck(mid))
        {
            r=mid-1;
            ans=min(ans,mid);
        }
        else l=mid+1;
    }
    cout<<ans<<'\n';
    return 0;
}