На прямой расположены стойла, в которые необходимо расставить коров так, чтобы минимальное расстояние между коровами было

Постоянный пользователь нашего ресурса написал нам почту в 12:18 с просьбой предоставить развернутый ответ на его вопрос. Наши эксперты отнесли этот вопрос к разделу Разное. Для ответа был привлечен один из опытных специалистов, который занимается написанием студенческих работ.

Цитируем вопрос ваш вопрос

На прямой расположены стойла, в которые необходимо расставить коров так, чтобы минимальное расстояние между коровами было

Разбор вопроса и ответ на него

Раздел 'ЕГЭ (школьный)', к которому был отнесён этот вопрос является не простой рубрикой. Для подготовки ответа на вопросы из этой рубрики специалист должен обладать широкими познаниями в различных научных областях. Однако в нашей компании таковые имеются.

Вы спрашивали:

На прямой расположены стойла, в которые необходимо расставить коров так, чтобы минимальное расстояние между коровами было

Конечно этот ответ может полностью не раскрыть тему вопроса, но мы постарались сделать его максимально полным. Предлагаем ознакомиться с мнением эксперта по этой теме:

var
n, k, i, j: integer;
l, r, m, g: longint;27
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.

К нам на почту приходит много вопросов. Мы стараемся отвечать на все. Однако вы должны понимать, что большая загруженность увеличивает время ответа. Сейчас среднее время ответа равно 14:2.