Étant donné l'entrée d'une liste de blocs à déposer à certains points, affichez la hauteur de la "tour" résultante.
La meilleure façon d'expliquer ce défi est par l'exemple. L'entrée sera une liste de 2n entiers représentant n blocs. Le premier entier est la position x du bloc, indexé 0, et le second est la largeur du bloc. Par exemple, une entrée de 2 4représente le bloc (avec les coordonnées x marquées ci-dessous):
####
0123456789
Maintenant, disons que l'entrée est 2 4 4 6. Autrement dit, un bloc à x = 2 avec une largeur de 4, et un à x = 4 avec une largeur de 6:
######
####
Notez que a.) Les blocs "tombent" toujours du haut de la tour et b.) Les blocs ne "tomberont" jamais (c'est-à-dire qu'ils seront toujours en équilibre). Ainsi, une entrée de
2 4 4 6 12 1représente:
######
#### #
Notez que le bloc final est tombé jusqu'au «sol».
Votre sortie finale doit être la hauteur maximale de la tour à chaque valeur x jusqu'à la plus grande. Par conséquent, l'entrée 2 4 4 6 12 1devrait entraîner une sortie
0011222222001:
######
#### #
0011222222001
L'entrée peut être donnée sous la forme d'une chaîne séparée par des espaces / virgules, un tableau d'entiers ou des arguments de ligne de fonction / commande. Les positions des blocs (valeurs x) seront toujours des entiers 0 ou plus, la largeur sera toujours un entier 1 ou plus, et il y aura toujours au moins un bloc.
La sortie peut être donnée sous la forme d'une chaîne unique séparée par des caractères non numériques (par exemple "0, 0, 1, ..."), une chaîne unique répertoriant tous les chiffres (par exemple
"001...", la hauteur maximale est garantie à 9 ou moins) ou un tableau d'entiers.
Puisqu'il s'agit de code-golf , le code le plus court en octets gagnera.
Cas de test:
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