Задание №6101.
Обработка целочисленной информации. ЕГЭ по информатике
Файл, необходимый для выполнения задания: ссылка для скачивания.В магазине для упаковки подарков есть
N кубических коробок. Самой интересной считается упаковка подарка по принципу матрёшки – подарок упаковывается в одну из коробок, та, в свою очередь, в другую коробку и т.д. Одну коробку можно поместить в другую, если длина её стороны хотя бы на 9 единиц меньше длины стороны другой коробки. Определите наибольшее количество коробок, которое можно использовать для упаковки одного подарка, и максимально возможную длину стороны самой маленькой из этих коробок. Размер подарка позволяет поместить его в самую маленькую коробку.
Входные данные В первой строке входного файла находится число
N – количество коробок в магазине (натуральное число, не превышающее 10 000). В следующих N строках находятся значения длин сторон коробок (все числа натуральные, не превышающие 10 000), каждое – в отдельной строке.
Запишите в ответе два целых числа: сначала наибольшее количество коробок, которое можно использовать для упаковки одного подарка, затем максимально возможную длину стороны самой маленькой коробки в таком наборе.
Типовой пример организации данных во входном файле
5
43
40
32
40
30
Пример входного файла приведён для пяти коробок и случая, когда минимальная допустимая разница между длинами сторон подходящих коробок составляет 3 единицы.
При таких исходных данных условию задачи удовлетворяют наборы коробок с длинами сторон 30, 40 и 43 или 32, 40 и 43 соответственно, т.е. количество коробок равно 3, а длина стороны самой маленькой коробки равна 32.Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемых файлов.
Пояснение:
Решим задание, написав программу на языке программирования Python.
with open('input.txt') as data: data = sorted([(int(i)) for i in data.read().splitlines()[1:]],reverse=True) count_boxes = current_box_size = 0 for x in range(len(data)): if x == 0: current_box_size = data[x] count_boxes += 1 else: if current_box_size - data[x] >= 9: current_box_size = data[x] count_boxes += 1 print(count_boxes, current_box_size) |
Таким образом,
1040 — наибольшее количество коробок, которое можно использовать для упаковки одного подарка,
57 — максимально возможная длина стороны самой маленькой коробки в таком наборе.
Показать ответ
1040 57
Источник: Открытый вариант — 2025
Сообщить об ошибке
Тест с похожими заданиями