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