Einführung
Dies ist ein Protokoll der Länge 5:
#####
Ich möchte einen Haufen dieser Protokolle übereinander stapeln. So schiebe ich einen neuen Baumstamm von rechts nach oben und höre auf zu schieben, wenn die linken oder rechten Enden ausgerichtet sind (fragen Sie nicht warum). Wenn das neue Protokoll länger ist, wird es bis zum linken Ende des obersten Protokolls verschoben:
######## <-
#####
Wenn es kürzer ist, wird es nur so lange verschoben, bis die rechten Enden ausgerichtet sind:
###### <-
########
#####
Wenn ich mehr Stämme in den Stapel schiebe, werden ihre Positionen durch das aktuell oberste Protokoll bestimmt:
##
######
###
####
##
######
########
#####
Das sieht physikalisch unmöglich aus, aber tun wir mal so, als ob es funktioniert.
Die Aufgabe
Ihre Eingabe muss eine nicht leere Liste positiver Ganzzahlen sein, die die Länge meiner Protokolle darstellt. Die am weitesten links stehende Zahl ist das erste Holz, das ich auf den Stapel gelegt habe, sodass es unten landet. Im obigen Beispiel wäre die Eingabe [5,8,6,2,4,3,6,2]
. Ihre Ausgabe ist für jede Spalte des resultierenden Stapels die Anzahl der Protokolle, die diese Spalte überschreiten. Im obigen Beispiel wäre die richtige Ausgabe [2,2,3,3,3,2,4,6,3,3,1,2,2]
.
Regeln und Wertung
Eingabe und Ausgabe können in jedem vernünftigen Format erfolgen. Die Ausgabe kann nur positive Ganzzahlen enthalten, dh sie darf keine führenden oder nachfolgenden 0
s enthalten. Es gelten die üblichen Code-Golf-Regeln: Sie können ein vollständiges Programm oder eine Funktion schreiben, die niedrigste Byte-Anzahl gewinnt und Standard-Lücken sind verboten.
Testfälle
[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]