Dans un monde 2D fictif, un ensemble d'instructions d'impression 2D pour un objet peut être représenté par une liste d'entiers comme suit:
1 4 2 1 1 2 5 3 4
Chaque nombre représente la hauteur de l'objet à ce point particulier. La liste ci-dessus se traduit par l'objet suivant lors de l'impression:
#
# # #
# ###
## ####
#########
Nous le remplissons ensuite avec autant d'eau que possible, ce qui se traduit par:
#
#~~~~#~#
#~~~~###
##~~####
#########
Nous définissons la capacité de l'objet à être les unités d'eau que l'objet peut contenir lorsqu'il est complètement rempli; dans ce cas, 11.
À strictement parler, une unité d'eau ( ~
) peut exister à un endroit si et seulement si elle est entourée de deux blocs solides ( #
) dans la même rangée.
Défi
Prenez une liste d'entiers positifs en entrée (dans n'importe quel format) et affichez la capacité de l'objet imprimé lorsque la liste est utilisée comme instructions.
Vous pouvez supposer que la liste contient au moins un élément et que tous les éléments sont compris entre 1 et 255.
Cas de 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 |
+-----------------+--------+