Не выходит решить задачу
В магазине для упаковки подарков есть 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)
Помогите мне исправить мой код, но не пишите полностью новый. Я хочу понять свою ошибку. Спасибо!