Wprowadzenie
W tym wyzwaniu otrzymujesz jako dane wejściowe reprezentację ASCII siatki (rozłożonej powierzchni) prostokątnego prostopadłościanu (ramka 3D). Format jest następujący:
....+--+.......
....|##|.......
....|##|.......
....|##|.......
+---+--+---+--+
|###|##|###|##|
+---+--+---+--+
....|##|.......
....|##|.......
....|##|.......
....+--+.......
Każda twarz prostopadłościanu jest prostokątem #
s otoczonym +-|
-znakami. Zewnętrzna część siatki jest wypełniona .
s. Sieć zawsze będzie miała tę samą orientację: środkowa ściana otoczona jest czterema sąsiadującymi ścianami, a odpowiednik środkowej ściany znajduje się po prawej stronie wejścia. Dane wejściowe są wypełnione .
s do kształtu prostokąta i nie będą zawierać dodatkowych wierszy ani kolumn .
s.
Zadanie
Twoim zadaniem jest wziąć jako dane wejściowe diagram jak wyżej i obliczyć objętość prostopadłościanu, który reprezentuje, który jest tylko iloczynem jego wysokości, szerokości i głębokości. Możesz wziąć dane wejściowe jako ciąg rozdzielany znakiem nowej linii lub tablicę ciągów.
Długość każdej krawędzi to odległość między +
znakami na dwóch końcach. Na przykład krawędź pozioma +--+
ma długość 3, a krawędź pionowa
+
|
|
|
+
ma długość 4. Minimalna długość krawędzi wynosi 1. Przykładowy prostopadłościan powyżej ma objętość 2 * 3 * 4 = 24.
Zasady i punktacja
Możesz napisać pełny program lub funkcję, a wygrywa najniższa liczba bajtów.
Przypadki testowe
.++..
+++++
+++++
.++..
1
...++....
...||....
...||....
+--++--++
+--++--++
...||....
...||....
...++....
3
..+-+....
..|#|....
+-+-+-+-+
|#|#|#|#|
|#|#|#|#|
+-+-+-+-+
..|#|....
..+-+....
12
.+---+.....
++---++---+
||###||###|
||###||###|
||###||###|
++---++---+
.+---+.....
16
....++.....
....||.....
....||.....
....||.....
+---++---++
|###||###||
|###||###||
|###||###||
+---++---++
....||.....
....||.....
....||.....
....++.....
16
...+--+......
...|##|......
...|##|......
+--+--+--+--+
|##|##|##|##|
+--+--+--+--+
...|##|......
...|##|......
...+--+......
18
....+--+.......
....|##|.......
....|##|.......
....|##|.......
+---+--+---+--+
|###|##|###|##|
+---+--+---+--+
....|##|.......
....|##|.......
....|##|.......
....+--+.......
24
....+-----+..........
....|#####|..........
....|#####|..........
....|#####|..........
+---+-----+---+-----+
|###|#####|###|#####|
|###|#####|###|#####|
|###|#####|###|#####|
|###|#####|###|#####|
+---+-----+---+-----+
....|#####|..........
....|#####|..........
....|#####|..........
....+-----+..........
120