Em um mundo 2D fictício, um conjunto de instruções de impressão 2D para um objeto pode ser representado por uma lista de números inteiros da seguinte maneira:
1 4 2 1 1 2 5 3 4
Cada número representa a altura do objeto naquele ponto específico. A lista acima se traduz no seguinte objeto quando impressa:
#
# # #
# ###
## ####
#########
Em seguida, enchemos com o máximo de água possível, resultando no seguinte:
#
#~~~~#~#
#~~~~###
##~~####
#########
Definimos a capacidade do objeto como unidades de água que ele pode reter quando completamente cheio; neste caso, 11.
A rigor, uma unidade de água ( ~
) pode existir em um local se e somente se estiver cercada por dois blocos sólidos ( #
) na mesma linha.
Desafio
Pegue uma lista de números inteiros positivos como entrada (em qualquer formato) e imprima a capacidade do objeto impresso quando a lista for usada como instruções.
Você pode assumir que a lista contém pelo menos um elemento e todos os elementos estão entre 1 e 255.
Casos de teste
+-----------------+--------+
| Input | Output |
+-----------------+--------+
| 1 | 0 |
| 1 3 255 1 | 0 |
| 6 2 1 1 2 6 | 18 |
| 2 1 3 1 5 1 7 1 | 7 |
| 2 1 3 1 7 1 7 1 | 9 |
| 5 2 1 3 1 2 5 | 16 |
| 80 80 67 71 | 4 |
+-----------------+--------+