Задача

2/11

_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 условно обозначены два цвета).
В ответе, через пробел, запишите два целых числа :
сначала максимально возможное количество контейнеров в одном блоке, затем  - минимальное количество ячеек для хранения всех контейнеров.


 

Выберите правильный ответ, либо введите его в поле ввода

Комментарий учителя