Dada a entrada de uma lista de blocos a serem descartados em determinados pontos, produza a altura da "torre" resultante.
A melhor maneira de explicar esse desafio é pelo exemplo. A entrada será uma lista de 2n números inteiros representando n blocos. O primeiro número inteiro é a posição x do bloco, indexada a 0, e o segundo é a largura do bloco. Por exemplo, uma entrada de 2 4
representa o bloco (com as coordenadas x rotuladas abaixo):
####
0123456789
Agora, digamos que a entrada seja 2 4 4 6
. Ou seja, um bloco em x = 2 com uma largura de 4 e um em x = 4 com uma largura de 6:
######
####
Observe que a.) Os blocos sempre "caem" do topo da torre eb) os blocos nunca "caem" (ou seja, eles sempre se equilibram). Portanto, uma entrada de
2 4 4 6 12 1
representa:
######
#### #
Observe que o bloco final caiu todo o caminho até o "solo".
Sua saída final deve ser a altura máxima da torre em cada valor x até o maior. Portanto, a entrada 2 4 4 6 12 1
deve resultar na saída
0011222222001
:
######
#### #
0011222222001
A entrada pode ser fornecida como uma cadeia de caracteres separada por espaço em branco / vírgula, uma matriz de números inteiros ou argumentos de função / linha de comando. As posições do bloco (valores x) sempre serão números inteiros 0 ou maiores, a largura sempre será um número inteiro 1 ou maior e sempre haverá pelo menos um bloco.
A saída pode ser fornecida como uma única sequência separada por caracteres não numéricos (ex. "0, 0, 1, ..."
), Uma única sequência que lista todos os dígitos (ex.
"001..."
- a altura máxima é garantida em 9 ou menos) ou uma matriz de números inteiros.
Como esse é o código-golfe , o código mais curto em bytes será vencedor.
Casos de teste:
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