003:Aggressive cows
#include<iostream>
#include<cstdlib>
#pragma warning(disable:4996)
using namespace std;
const int NUM = 100000;
int x[NUM];
int Mycompare(const void* e1, const void* e2) {
int* p1 = (int*)e1;
int* p2 = (int*)e2;
return *p1 - *p2;
}
bool IsOk(int n,int c,int dist) {
int j = 1, lastpos = 0;
for (int i = 1;i < c;i++) {
for (;j < n;j++)
if (x[lastpos] + dist <= x[j]) {
lastpos = j;
break;
}
if (j == n)
return false;
}
if (j < n)
return true;
else
return false;
}
int main()
{
//freopen("C:\\Users\\czh\\Desktop\\2.txt", "r", stdin);
int n, c;
cin >> n >> c;
for (int i = 0;i < n;i++)
cin >> x[i];
qsort(x, n, sizeof(int), Mycompare);
//for (int i = 0;i < n;i++)
// cout<< x[i]<<endl;
int l=0,r = 1000000000 / c,lastdist=-1;
while (l <= r) {
int mid = l + (r - l) / 2;
if (IsOk(n,c,mid)) {
l = mid + 1;
lastdist = mid;
}
else
r = mid - 1;
}
cout << lastdist;
return 0;
}