_St-22_10-ege-26(a)
#z26 Статград октябрь 2022 года
f=open('26.txt') # открытие файла с данными
N=int(f.readline()) # начальное кол-во контейнеров
print(N) # отладочная печать
eps=5 # необходимый зазор
BB=[] # список размеров контейнеров
for _ in range(N): # чтение списка
x=int(f.readline())
BB.append(x)
BB.sort() # сортировка по возрастанию (отбор будем проводить с "хвоста")
rez=[] # для хранения результатов (можно без списка)
while BB : # пока стек не пуст
p=BB.pop() # вытащили "верхний" (самый большой)
k=1 # открыли счёт
AA=[] # новый стек для откладывания
while BB : # перебор стека
x=BB.pop() # вытащили "верхний"
if p-x<eps : AA.append(x) # "плохой" размер -> отложили в AA
else: # подходит
k+=1 # маркируем
p=x # меняем размер пустого
BB=AA[::-1] # переворачиваем стек
rez.append(k) # добавляем результат
print(len(rez),max(rez)) # печать ИТОГОВ
Задача
На складе хранятся кубические контейнеры различного размера. Чтобы сократить занимаемое при хранении место, контейнеры вкладывают друг в друга. Один контейнер можно вложить в другой, если размер стороны внешнего контейнера превышает размер стороны внутреннего на 5 и более условных единиц. Группу вложенных друг в друга контейнеров называют блоком.
Количество контейнеров в блоке может быть любым. Каждый блок, независимо от количества и размера входящих в него контейнеров, а также каждый одиночный контейнер, не входящий в блоки, занимает при хранении одну складскую ячейку.
Зная количество контейнеров и их размеры, определите минимальное количество ячеек для хранения всех контейнеров и максимально возможное количество контейнеров в одном блоке.
Входные данные
Первая строка входного файла содержит целое число N – общее количество контейнеров.
Каждая из следующих N строк содержит натуральное число, не превышающее 10 000, – размер контейнера в условных единицах.
В ответе, через пробел, запишите два целых числа:
сначала минимальное количество ячеек для хранения всех контейнеров, затем максимально возможное количество контейнеров в одном блоке.
В ответе, через пробел, запишите два целых числа :
сначала - минимальное количество ячеек для хранения всех контейнеров, затем - максимально возможное количество контейнеров в одном блоке,
Выберите правильный ответ, либо введите его в поле ввода
Комментарий учителя