Введение
В этом задании в качестве входных данных вам дается ASCII-представление сети (развернутой поверхности) прямоугольного кубоида (3D-прямоугольника). Формат такой:
....+--+.......
....|##|.......
....|##|.......
....|##|.......
+---+--+---+--+
|###|##|###|##|
+---+--+---+--+
....|##|.......
....|##|.......
....|##|.......
....+--+.......
Каждая грань кубоида представляет собой прямоугольник из #
s, окруженный +-|
символами. Снаружи сеть заполнена с .
. Сеть всегда будет иметь одинаковую ориентацию: средняя грань окружена четырьмя соседними гранями, а аналог средней грани находится у правой границы ввода. Входные данные дополняются .
s до прямоугольной формы и не будут содержать лишних строк или столбцов .
s.
Задание
Ваша задача - взять в качестве входных данных диаграмму, описанную выше, и вычислить объем кубоида, который он представляет, который является просто произведением его высоты, ширины и глубины. Вы можете принять входные данные как строку с разделителями новой строки или массив строк.
Длина каждого ребра - это расстояние между +
символами на его двух концах. Например, горизонтальный край +--+
имеет длину 3, а вертикальный край
+
|
|
|
+
имеет длину 4. Минимальная длина ребра равна 1. Приведенный выше пример кубоида имеет объем 2 * 3 * 4 = 24.
Правила и оценки
Вы можете написать полную программу или функцию, и побеждает меньшее количество байтов.
Контрольные примеры
.++..
+++++
+++++
.++..
1
...++....
...||....
...||....
+--++--++
+--++--++
...||....
...||....
...++....
3
..+-+....
..|#|....
+-+-+-+-+
|#|#|#|#|
|#|#|#|#|
+-+-+-+-+
..|#|....
..+-+....
12
.+---+.....
++---++---+
||###||###|
||###||###|
||###||###|
++---++---+
.+---+.....
16
....++.....
....||.....
....||.....
....||.....
+---++---++
|###||###||
|###||###||
|###||###||
+---++---++
....||.....
....||.....
....||.....
....++.....
16
...+--+......
...|##|......
...|##|......
+--+--+--+--+
|##|##|##|##|
+--+--+--+--+
...|##|......
...|##|......
...+--+......
18
....+--+.......
....|##|.......
....|##|.......
....|##|.......
+---+--+---+--+
|###|##|###|##|
+---+--+---+--+
....|##|.......
....|##|.......
....|##|.......
....+--+.......
24
....+-----+..........
....|#####|..........
....|#####|..........
....|#####|..........
+---+-----+---+-----+
|###|#####|###|#####|
|###|#####|###|#####|
|###|#####|###|#####|
|###|#####|###|#####|
+---+-----+---+-----+
....|#####|..........
....|#####|..........
....|#####|..........
....+-----+..........
120