introduzione
Questo è un registro di lunghezza 5:
#####
Voglio impilare un mucchio di questi ceppi uno sopra l'altro. In questo modo faccio scorrere un nuovo registro su quello più in alto da destra e smetto di scivolare quando le loro estremità sinistra o destra sono allineate (non chiedere perché). Se il nuovo registro è più lungo, scorre fino all'estremità sinistra del registro più in alto:
######## <-
#####
Se è più corto, scorre solo fino a quando le estremità destra non si allineano:
###### <-
########
#####
Mentre faccio scorrere più tronchi nella pila, le loro posizioni sono determinate dal registro più in alto corrente:
##
######
###
####
##
######
########
#####
Sembra fisicamente impossibile, ma facciamo finta che funzioni.
L'obiettivo
Il tuo input deve essere un elenco non vuoto di numeri interi positivi, che rappresentano le lunghezze dei miei registri. Il numero più a sinistra è il primo registro che ho inserito nella pila, quindi finisce in fondo. Nell'esempio sopra, l'input sarebbe [5,8,6,2,4,3,6,2]
. L'output deve essere, per ogni colonna della pila risultante, il numero di tronchi che attraversano quella colonna. Nell'esempio sopra, l'output corretto sarebbe [2,2,3,3,3,2,4,6,3,3,1,2,2]
.
Regole e punteggio
L'input e l'output possono essere in qualsiasi formato ragionevole. L'output può contenere solo numeri interi positivi, ovvero non deve avere 0
s iniziali o finali . Si applicano le normali regole del code-golf: è possibile scrivere un programma completo o una funzione, il conteggio dei byte più basso vince e le scappatoie standard sono vietate.
Casi 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]