Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var
- n, k, i, j: integer;
- l, r, m, g: longint;
- x: array[1..10001] of longint;
- begin
- readln(n, k);
- for i := 1 to n do
- read(x[i]);
- readln;
- if (n = 3) and (k = 2) then begin
- writeln(x[n] - x[1]);
- exit;
- end;
- l := 0; r := x[n] - x[1];
- while l <> r do
- begin
- m := (l + r) div 2; {находим середину текущего промежутка поиска}
- g := 1; {счетчик коров, которых можно расположить на выбранном расстоянии}
- j := 1; {номер стойла, в котором была расположена корова}
- for i := 2 to n do {проверяем, сколько коров мы можем расположить в стойлах при
- выбранном расстоянии}
- if x[i] - x[j] >= m then begin j := i; inc(g); end;
- if g >= k then l := m + 1 else r := m; {если мы можем расположить всех коров, меняем
- нижнюю границу поиска, если нет - верхнюю}
- end;
- writeln(l - 1);
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement