Introdução
Este é um log de comprimento 5:
#####
Quero empilhar um monte desses logs em cima uns dos outros. Como faço para fazer isso, deslizo um novo log para o mais alto da direita e paro de deslizar quando as extremidades esquerda ou direita estão alinhadas (não pergunte o porquê). Se o novo log for mais longo, ele deslizará até a extremidade esquerda do log superior:
######## <-
#####
Se for mais curto, ele desliza apenas até as extremidades direitas se alinharem:
###### <-
########
#####
À medida que deslizo mais logs para a pilha, suas posições são determinadas pelo log superior atual:
##
######
###
####
##
######
########
#####
Parece fisicamente impossível, mas vamos fingir que funciona.
A tarefa
Sua entrada deve ser uma lista não vazia de números inteiros positivos, representando os comprimentos dos meus logs. O número mais à esquerda é o primeiro registro que coloco na pilha, e termina na parte inferior. No exemplo acima, a entrada seria [5,8,6,2,4,3,6,2]
. Sua saída deve ser, para cada coluna da pilha resultante, o número de toras que cruzam essa coluna. No exemplo acima, a saída correta seria [2,2,3,3,3,2,4,6,3,3,1,2,2]
.
Regras e pontuação
A entrada e a saída podem estar em qualquer formato razoável. A saída pode conter apenas números inteiros positivos, ou seja, não deve ter 0
s iniciais ou finais . Aplicam-se regras normais de código de golfe: você pode escrever um programa ou uma função completa, a menor contagem de bytes vence e brechas padrão são proibidas.
Casos de teste
[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]