_St-22_12-ege-26(a)
#z26 Статград декабрь 2022 года
f=open('26.txt') # открытие файла с данными
sss=f.read().split('\n') # чтение всех строк из файла
print(len(sss)) # отладочная печать
print(sss[-5:])
eps=5 # необходимый зазор
BB=[] # список описаний контейнеров (размер, цвет)
for ss in sss[:-1]: # заполнение списка описаний
x,y=ss.split()
BB.append((int(x),y))
BB.sort() # сортировка по возрастанию (отбор будем проводить с "хвоста")
rez=[] # для хранения результатов (можно без списка)
while BB : # пока стек не пуст
pt=BB.pop() # вытащили "верхний" (самый большой)
p,t=pt[0],pt[1] # p-размер, t - цвет
k=1 # открыли счёт
AA=[] # новый стек для откладывания
while BB : # перебор стека
xy=BB.pop() # вытащили "верхний"
x,y=xy[0],xy[1]
if (p-x<eps) or (y==t) : AA.append((x,y)) # "плохой" размер или цвет -> отложили в AA
else: # подходит
k+=1 # маркируем
p,t =x ,y # меняем размер и цвет пустого
BB=AA[::-1] # переворачиваем стек
rez.append(k) # добавляем результат
print(max(rez),len(rez)) # печать ИТОГОВ
Задача
На складе хранятся кубические контейнеры двух цветов различного размера.
Чтобы сократить занимаемое при хранении место, контейнеры вкладывают друг в друга.
Чтобы вложенные контейнеры было лучше видно, их цвета при вложении обязательно должны чередоваться, то есть нельзя вкладывать контейнер в контейнер такого же цвета.
Один контейнер можно вложить в другой, если размер стороны внешнего контейнера превышает размер стороны внутреннего на 5 и более условных единиц. Группу вложенных друг в друга контейнеров называют блоком.
Количество контейнеров в блоке может быть любым.
Каждый блок, независимо от количества и размера входящих в него контейнеров, а также каждый одиночный контейнер, не входящий в блоки, занимает при хранении одну складскую ячейку.
Зная размеры и цвета всех контейнеров, определите максимально возможное количество контейнеров в одном блоке и минимальное количество ячеек для хранения всех контейнеров.
Входные данные
Каждая строка входного файла содержит натуральное число и букву A или B.
Число обозначает размер контейнера в условных единицах, буква – цвет этого контейнера (буквами A и B условно обозначены два цвета).
В ответе, через пробел, запишите два целых числа :
сначала максимально возможное количество контейнеров в одном блоке, затем - минимальное количество ячеек для хранения всех контейнеров.
Выберите правильный ответ, либо введите его в поле ввода
Комментарий учителя