Geben Sie bei Eingabe einer Liste von Blöcken, die an bestimmten Punkten abgelegt werden sollen, die Höhe des resultierenden "Turms" aus.
Diese Herausforderung lässt sich am besten anhand eines Beispiels erklären. Die Eingabe ist eine Liste von 2n ganzen Zahlen, die n Blöcke darstellen. Die erste Ganzzahl ist die x-Position des Blocks, 0-indiziert, und die zweite ist die Breite des Blocks. Beispielsweise stellt eine Eingabe von 2 4den Block dar (mit den unten angegebenen x-Koordinaten):
####
0123456789
Nehmen wir an, die Eingabe ist 2 4 4 6. Das heißt, ein Block bei x = 2 mit einer Breite von 4 und einer bei x = 4 mit einer Breite von 6:
######
####
Beachten Sie, dass a.) Blöcke immer von der Spitze des Turms "fallen" und b.) Blöcke niemals "umfallen" (dh sie balancieren immer). Eine Eingabe von 2 4 4 6 12 1stellt also Folgendes
dar:
######
#### #
Beachten Sie, dass der letzte Block bis zum "Boden" gefallen ist.
Ihre endgültige Ausgabe sollte die maximale Höhe des Turms bei jedem x-Wert bis zum größten sein. Daher sollte die Eingabe 2 4 4 6 12 1zur Ausgabe führen
0011222222001:
######
#### #
0011222222001
Die Eingabe kann entweder als durch Leerzeichen / Komma getrennte Zeichenfolge, als Array von Ganzzahlen oder als Funktions- / Befehlszeilenargument erfolgen. Die Blockpositionen (x-Werte) sind immer ganze Zahlen von 0 oder mehr, die Breite ist immer eine ganze Zahl von 1 oder mehr und es gibt immer mindestens einen Block.
Die Ausgabe kann als einzelne Zeichenfolge, die durch nicht numerische Zeichen getrennt ist (z. B. "0, 0, 1, ..."), als einzelne Zeichenfolge, in der alle Ziffern aufgelistet sind (z.
"001..."B. - die maximale Höhe darf garantiert 9 oder weniger betragen), oder als Array von Ganzzahlen erfolgen.
Da es sich um Code-Golf , wird der kürzeste Code in Bytes gewinnen.
Testfälle:
In Out
---------------------------------------------------------
2 4 4 6 12 1 0011222222001
0 5 9 1 6 4 2 5 1133333222
0 5 9 1 2 5 6 4 1122223333
0 5 2 5 6 4 9 1 1122223334
20 1 20 1 20 1 00000000000000000003
5 5 000011111
0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 4 123456789999