import java.util.Arrays;
import java.util.Scanner;
public class Main {
static int n;
static int m;
static int[] arr = new int[(int) (1e5+10)];
static int[] dis = new int[(int) (1e5+10)];
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
m = sc.nextInt();
for (int i = 1; i <= n; i++) {
arr[i] = sc.nextInt();
}
Arrays.sort(arr,1,n+1);
solution();
}
private static void solution() {
// 1 2 4 8 9 => 1 4 9 > 3
// 1 2 4 1
for(int i = 1; i < n; i++) {
dis[i] = arr[i+1] - arr[i];
}
int disMin = 0;
int disMax = 200000;
while (disMax > disMin) {
int mid = disMax + disMin + 1 >> 1;
if(check(mid)) {
disMin = mid;
}else {
disMax = mid - 1;
}
}
System.out.println(disMin);
}
private static boolean check(int mid) {
int sum = 0,cnt = 1;
for(int i = 1; i < n; i++) {
sum += dis[i];
if(sum >= mid) {
cnt ++;
sum = 0;
}
}
return cnt >= m;
}
}
实在不知道哪里错了!