Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

Арген Нургазиев Ученик (97), на голосовании 1 месяц назад
У вас есть последовательность из 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 в результате размещения всех блоков описанным выше образом. Чему равен максимальный размер такой башни?
Голосование за лучший ответ
Геральт Вольфганг Профи (871) 2 месяца назад
Арденами хвастаца ва тьме ееееехеехххеххеех
Татьяна Просветленный (26917) 2 месяца назад
 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]))
Похожие вопросы