introduction
Ceci est un journal de longueur 5:
#####
Je veux empiler un tas de ces journaux les uns sur les autres. Pour ce faire, je glisse une nouvelle bûche sur la plus haute à partir de la droite et arrête de glisser lorsque leurs extrémités gauche ou droite s'alignent (ne demandez pas pourquoi). Si le nouveau journal est plus long, il glisse jusqu'à l'extrémité gauche du journal le plus haut:
######## <-
#####
S'il est plus court, il ne glisse que jusqu'à ce que leurs extrémités droites s'alignent:
###### <-
########
#####
Lorsque je glisse plus de bûches dans la pile, leurs positions sont déterminées par la bûche la plus élevée actuelle:
##
######
###
####
##
######
########
#####
Cela semble physiquement impossible, mais supposons que cela fonctionne.
La tâche
Votre entrée doit être une liste non vide d'entiers positifs, représentant la longueur de mes journaux. Le nombre le plus à gauche est le premier rondin que j'ai mis dans la pile, il finit donc en bas. Dans l'exemple ci-dessus, l'entrée serait [5,8,6,2,4,3,6,2]
. Votre sortie sera, pour chaque colonne de la pile résultante, le nombre de journaux qui traversent cette colonne. Dans l'exemple ci-dessus, la sortie correcte serait [2,2,3,3,3,2,4,6,3,3,1,2,2]
.
Règles et notation
L'entrée et la sortie peuvent être dans n'importe quel format raisonnable. La sortie ne peut contenir que des entiers positifs, c'est-à-dire qu'elle ne doit pas avoir de 0
s de début ou de fin . Les règles de code-golf normales s'appliquent: vous pouvez écrire un programme complet ou une fonction, le nombre d'octets le plus bas l'emporte et les failles standard sont interdites.
Cas de test
[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]