В магазине для упаковки подарков есть N кубических коробок. Самой интересной считается упаковка подарка по принципу матрёшки — подарок упаковывается в одну из коробок, та, в свою очередь, в другую коробку и т. д. Одну коробку можно поместить в другую, если длина её стороны хотя бы на 9 единиц меньше длины стороны другой коробки. Определите наибольшее количество коробок, которое можно использовать для упаковки одного подарка, и максимально возможную длину стороны самой маленькой из этих коробок. Размер подарка позволяет поместить его в самую маленькую коробку.
Входные данные.
В первой строке входного файла находится число N — количество коробок в магазине (натуральное число,
Запишите в ответе два целых числа: сначала наибольшее количество коробок, которое можно использовать для упаковки одного подарка, затем максимально возможную длину стороны самой маленькой коробки в таком наборе.
Пример входного файла:
5
43
40
32
40
30
Пример входного файла приведён для пяти коробок и случая, когда минимальная допустимая разница между длинами сторон коробок, подходящих для упаковки «матрёшкой», составляет
При таких исходных данных условию задачи удовлетворяют наборы коробок с длинами сторон
Ответ:
Сначала считаем в список boxes данные из файла. После этого отсортируем список в порядке убывания. В список answer сначала поместим самую большую коробку. Далее пройдём по оставшимся коробкам и будем добавлять в список answer очередную коробку, если длина её стороны будет как минимум на
Приведём решение на языке Python.
f = open('26.txt')
n = f.readline()
boxes = sorted([int(i) for i in f], reverse=True)
answer = [boxes[0]]
for box in boxes[1:]:
if answer[-1] - box >= 9:
answer.append(box)
print(len(answer), answer[-1])
В результате работы данного алгоритма при вводе данных из файла в условии получаем ответ — 1040 57.
Ответ: 1040 57.
Примечание. Путь к файлу необходимо указать согласно расположению файла на Вашем компьютере.

