Задача 2 «Космическое поселение» Возможны два варианта размещения модулей 1 Основная идея решения задачи ≪Космическое поселение≫: двоичный поиск. Если модули ориентированы так, что сторона модуля длиной a ориентирована вдоль стороны поля длиной w, то число модулей с защитой, которые можно разместить на поле, равно (w div (a + 2d)) × (h div (b + 2d)) ≥ n число мест для модулей с защитой вдоль стороны поля длиной w число мест для модулей с защитой вдоль стороны поля длиной h 2 Тип всех переменных int64 L:=0; R:= Min(w, h)+1; while L+1< R Do begin M:=(L+R) div 2; ad:=a+2*M; bd:=b+2*M; ac:=w div ad; bc:=h div bd; if (ac*bc >= n) then L:=M else R:=M; end; На выходе L определяет толщину защитного слоя при рассматриваемой ориентации модулей 3 Для решения подзадачи 1 достаточно перебрать все возможные значения толщины защиты линейным проходом. Для решения подзадачи 2 требуется заметить, что при размещении модулей вдоль каждой стороны поля размещается не более n модулей, поэтому можно осуществить перебор, сколько модулей будет расположено вдоль стороны длиной w и проверить для такого количества модулей вдоль этой стороны, какая толщина защиты возможна. Для решения подзадачи 3 можно развить эту мысль, заметив, что вдоль одной из сторон размещается не более sqrt(n) модулей, а значит можно ускорить перебор. 4 Спасибо за внимание 5