Dada una entrada de una lista de bloques para soltar en ciertos puntos, genera la altura de la "torre" resultante.
La mejor manera de explicar este desafío es con el ejemplo. La entrada será una lista de 2n enteros que representan n bloques. El primer entero es la posición x del bloque, indexado en 0, y el segundo es qué tan ancho es el bloque. Por ejemplo, una entrada de 2 4
representa el bloque (con las coordenadas x etiquetadas a continuación):
####
0123456789
Ahora, digamos que la entrada es 2 4 4 6
. Es decir, un bloque en x = 2 con un ancho de 4, y uno en x = 4 con un ancho de 6:
######
####
Tenga en cuenta que a.) Los bloques siempre "caen" desde la parte superior de la torre yb.) Los bloques nunca "se caerán" (es decir, siempre se equilibrarán). Entonces, una entrada de
2 4 4 6 12 1
representa:
######
#### #
Tenga en cuenta que el bloque final ha caído hasta el "suelo".
Su salida final debe ser la altura máxima de la torre en cada valor de x hasta el más grande. Por lo tanto, la entrada 2 4 4 6 12 1
debería dar como resultado la salida
0011222222001
:
######
#### #
0011222222001
La entrada puede darse como una cadena separada por comas / espacios en blanco, una matriz de enteros o argumentos de línea de función / comando. Las posiciones de bloque (valores x) siempre serán enteros 0 o mayores, el ancho siempre será un entero 1 o mayor, y siempre habrá al menos un bloque.
La salida se puede dar como una sola cadena separada por caracteres no numéricos (ej. "0, 0, 1, ..."
), Una sola cadena que enumera todos los dígitos (ej.
"001..."
, La altura máxima se garantiza que sea 9 o menos), o una matriz de enteros.
Como se trata de código golf , el código más corto en bytes ganará.
Casos de prueba:
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