W fikcyjnym świecie 2D zestaw instrukcji drukowania 2D dla obiektu może być reprezentowany przez listę liczb całkowitych w następujący sposób:
1 4 2 1 1 2 5 3 4
Każda liczba reprezentuje wysokość obiektu w tym konkretnym punkcie. Powyższa lista po wydrukowaniu tłumaczy na następujący obiekt:
#
# # #
# ###
## ####
#########
Następnie napełniamy go możliwie dużą ilością wody, co powoduje:
#
#~~~~#~#
#~~~~###
##~~####
#########
Definiujemy pojemność obiektu jako jednostki wody, które obiekt może utrzymać, gdy jest całkowicie pełny; w tym przypadku 11.
Ściśle mówiąc, jednostka wody ( ~
) może istnieć w miejscu tylko wtedy, gdy jest otoczona dwoma stałymi blokami ( #
) w tym samym rzędzie.
Wyzwanie
Weź listę dodatnich liczb całkowitych jako dane wejściowe (w dowolnym formacie) i wyświetl pojemność obiektu wydrukowanego, gdy lista jest używana jako instrukcja.
Możesz założyć, że lista zawiera co najmniej jeden element, a wszystkie elementy mają wartość od 1 do 255.
Przypadki testowe
+-----------------+--------+
| 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 |
+-----------------+--------+