Не выходит решить задачу

Рейтинг: 0Ответов: 0Опубликовано: 12.06.2023

В магазине для упаковки подарков есть N кубических коробок красного, зелёного и синего цвета. Самой интересной считается упаковка подарка по принципу матрёшки  — подарок упаковывается в одну из коробок, та в свою очередь в другую коробку и т. д., при этом цвета коробок отличаются. Одну коробку можно поместить в другую, если длина её стороны хотя бы на 7 единицы меньше длины стороны другой коробки.

Определите наибольшее количество коробок, которое можно использовать для упаковки одного подарка, и максимально возможную длину стороны самой маленькой коробки, где будет находиться подарок. Размер подарка позволяет поместить его в самую маленькую коробку.

Ссылка на файл через файлообменник: https://dropmefiles.com/E7lxG

Вот версия моего кода. Мне нужно посчитать только самое большое количество использованных коробок за раз, но ответ выходит не верный. Правильный 628

f = open('26_5988.txt')
k = []
maxlength = 0

for x in f:
    a, b = x.split()
    k.append([int(a), b])

k.sort(reverse=True) #сортирую коробки с самой большой

for j in range(len(k)): #прохожусь по каждой коробке и ищу максимальное кол-во коробок, которое может в неё поместиться.
    podarok = [k[j]]

    for i in range(j + 1, len(k)):

        if podarok[-1][0] - k[i][0] >= 7 and k[i][1] != podarok[-1][1]:
            podarok.append(k[i]) #подарок - коробки, из которых собирается подарок. Отнимаю из самой последней коробки следующую за ней коробку из списка и смотрю, чтобы разница была равна 7 или больше 7, а так же, чтобы цвета отличались. Если это так, то добавляю коробку в подарок.

        maxlength = max(maxlength, len(podarok)) #ищу максимальное кол-во коробок среди подарков.

print(maxlength)

Помогите мне исправить мой код, но не пишите полностью новый. Я хочу понять свою ошибку. Спасибо!

Ответы

Ответов пока нет.