In un mondo 2D immaginario, un insieme di istruzioni di stampa 2D per un oggetto può essere rappresentato da un elenco di numeri interi come segue:
1 4 2 1 1 2 5 3 4
Ogni numero rappresenta l'altezza dell'oggetto in quel particolare punto. L'elenco sopra si traduce nel seguente oggetto quando stampato:
#
# # #
# ###
## ####
#########
Lo riempiamo quindi con quanta più acqua possibile, ottenendo così:
#
#~~~~#~#
#~~~~###
##~~####
#########
Definiamo la capacità dell'oggetto di essere le unità di acqua che l'oggetto può contenere quando è completamente pieno; in questo caso, 11.
A rigor di termini, un'unità di acqua ( ~
) può esistere in una posizione se e solo se è circondata da due blocchi solidi ( #
) nella stessa fila.
Sfida
Prendi un elenco di numeri interi positivi come input (in qualsiasi formato) e genera la capacità dell'oggetto stampato quando l'elenco viene utilizzato come istruzioni.
Puoi presumere che l'elenco contenga almeno un elemento e tutti gli elementi siano compresi tra 1 e 255.
Casi test
+-----------------+--------+
| 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 |
+-----------------+--------+