Top.Mail.Ru
Ответы

Решите задачу через python

У вас есть последовательность из n цветных блоков. Цвет i -го из них равен ci . Цвета блоков являются целыми числами от 1 до n . Вы будете последовательно размещать блоки на бесконечной координатной сетке следующим образом: Сначала вы размещаете блок 1 в клетке (0,0) . Для 2≤i≤n обозначим за (x,y) клетку, в которой вы разместили (i−1) -й блок. Вы можете разместить i -й блок в одну из свободных клеток (x+1,y) , (x−1,y) , (x,y+1) (но не в клетку (x,y−1) ). Обратите внимание, что вы не можете размещать блок в клетке, уже содержащей блок. Башня состоит из s блоков, расположенных в клетках (x,y),(x,y+1),…,(x,y+s−1) для некоторой клетки (x,y) и целого числа s . Размер башни равен количеству блоков в ней s . Башня цвета r это башня, состоящая только из блоков цвета r . Для всех r от 1 до n решите независимо следующую задачу: Вы хотите создать большую башню цвета r в результате размещения всех блоков описанным выше образом. Чему равен максимальный размер такой башни?

По дате
По рейтингу
Аватар пользователя
Просветленный
12345678
 def max_tower_size(n, colors): 
    max_sizes = [0] * n 
    update_max = lambda color: max_sizes.__setitem__(color - 1, max(max_sizes[:color]) + 1) 
    list(map(update_max, colors)) 
    return max_sizes 
 
# Пример использования 
print(max_tower_size(5, [1, 2, 3, 2, 4])) 
Аватар пользователя

Арденами хвастаца ва тьме ееееехеехххеххеех