Вступ
Це журнал довжиною 5:
#####
Я хочу скласти купу цих колод один на одного. Як я це роблю, я пересуваю новий журнал на верхній верхній з правого боку і зупиняю ковзання, коли їхній лівий або правий кінці вирівнюються (не питайте, чому). Якщо новий журнал довший, він ковзає до лівого кінця верхнього журналу:
######## <-
#####
Якщо вона коротша, вона ковзає лише до вирівнювання їхніх правих кінців:
###### <-
########
#####
Коли я ковзаю більше журналів у купу, їх положення визначаються поточним самим верхнім журналом:
##
######
###
####
##
######
########
#####
Це виглядає фізично неможливо, але давайте робити вигляд, що це працює.
Завдання
Ваш вхід повинен бути не порожнім списком натуральних чисел, що представляють довжину моїх журналів. Найменше ліве число - це перший журнал, який я кладу до купи, тож він закінчується внизу. У наведеному вище прикладі вхід буде [5,8,6,2,4,3,6,2]. Для кожного стовпця результуючої палі має бути кількість журналів, які перетинають цей стовпець. У наведеному вище прикладі правильним буде вихід [2,2,3,3,3,2,4,6,3,3,1,2,2].
Правила та оцінка
Введення та вихід можуть бути у будь-якому розумному форматі. Вихід може містити лише додатні цілі числа, тобто він не повинен мати провідних або кінцевих 0s. Діють звичайні правила коду-гольфу: ви можете написати повну програму або функцію, виграє найнижчий байт, а стандартні лазівки заборонені.
Тестові справи
[1] -> [1]
[4] -> [1,1,1,1]
[3,2] -> [1,2,2]
[2,3] -> [2,2,1]
[2,2,2] -> [3,3]
[2,3,2] -> [2,3,2]
[3,2,3] -> [1,3,3,1]
[1,3,2,2,1,3,1] -> [2,3,5,1,2]
[4,3,4,2,4,3,4,2] -> [1,3,3,5,5,3,4,2]
[5,8,6,2,4,3,6,2] -> [2,2,3,3,3,2,4,6,3,3,1,2,2]
[5,10,15,1,1,1,1,1,2] -> [3,3,3,3,3,2,2,2,2,2,1,1,1,1,7,1]
[13,12,2,10,14,12] -> [1,2,2,2,2,2,2,2,2,2,2,5,5,3,3,3,3,3,3,3,3,2,2,2,2]
[12,14,3,6,13,1,1] -> [2,2,2,2,2,2,2,2,2,2,2,5,4,4,2,2,2,1,1,1,1,1,1,3]
[7,5,12,5,1,10,14,5] -> [1,1,3,3,3,3,3,1,1,2,2,2,2,5,2,2,2,2,2,2,2,2,3,2,2,2,2]
[14,5,1,3,12,6,2,2,1,7,9,15] -> [1,1,1,1,1,1,1,1,1,2,2,2,2,5,2,2,1,1,1,2,2,2,2,4,8,3,3,3,3,3,3,2,2,1,1,1,1,1,1]