洛谷--P1824 进击的奶牛
#include<bits/stdc++.h>
#define Acode ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
using namespace std;
typedef long long ll;
#define endl '\n'
int n,c;
const int N = 1e6 + 10;
int a[N];
bool check(int mid)
{
int cnt = 0;
int pre = a[1];
for (int i = 2; i <= n; i++)
{
if (a[i] - pre >= mid) pre = a[i];
else cnt++;
}
if (cnt <= n - c) return true;
else return false;
}
int main()
{
Acode;
cin >> n >> c;
for (int i = 1; i <= n; i++) cin >> a[i];
sort(a + 1, a + 1 + n);
int l = 1, r = a[n]-a[1];
while (l <= r)
{
int mid = l + r >> 1;
if (check(mid)) l = mid + 1;
else r = mid - 1;
}
cout << r;
return 0;
}