Посмотрите на эту диаграмму искусства ascii различных коробок:
+--------------------------------------------------------------+
| |
| +-------------------------------+ +-------+ |
| | | | | |
| | | | | |
| | +----------------+ | | | |
| | | | | +-------+ |
| | | | | |
| | | | | +-------+ |
| | +----------------+ | | | |
| | | | | |
| | | | | |
| +-------------------------------+ +-------+ |
| |
+--------------------------------------------------------------+
Каждое поле состоит из символов для вертикальных частей ( |
), тире для горизонтальных частей ( -
) и плюсов для углов ( +
).
Диаграмма также показывает коробки внутри других блоков. Мы назовем количество ящиков, которое содержится в ящике в слое этого ящика . Вот диаграмма снова с аннотированным слоем каждого блока:
+--------------------------------------------------------------+
| |
| +-------------------------------+ +-------+ |
| | | | | |
| | | | 1 | |
| | +----------------+ | | | |
| | | | | 0 +-------+ |
| | | 2 | 1 | |
| | | | | +-------+ |
| | +----------------+ | | | |
| | | | 1 | |
| | | | | |
| +-------------------------------+ +-------+ |
| |
+--------------------------------------------------------------+
Ваша программа примет в качестве входных данных диаграмму, похожую на диаграмму сверху. В качестве вывода ваша программа должна вывести блок-диаграмму с:
- Рамка на слое 0 должна быть заполнена символом
#
(примечание: на слое 0 будет только один бокс); - Коробки на слое 1 должны быть заполнены символом
=
; - Коробки на слое 2 должны быть заполнены символом
-
; - Коробки на слое 3 должны быть заполнены символом
.
; - Ящики на слое 4 и выше не должны быть заполнены.
Вот как должен выглядеть вывод входных данных примера:
+--------------------------------------------------------------+
|##############################################################|
|###+-------------------------------+##########+-------+#######|
|###|===============================|##########|=======|#######|
|###|===============================|##########|=======|#######|
|###|=====+----------------+========|##########|=======|#######|
|###|=====|----------------|========|##########+-------+#######|
|###|=====|----------------|========|##########################|
|###|=====|----------------|========|##########+-------+#######|
|###|=====+----------------+========|##########|=======|#######|
|###|===============================|##########|=======|#######|
|###|===============================|##########|=======|#######|
|###+-------------------------------+##########+-------+#######|
|##############################################################|
+--------------------------------------------------------------+
Вот еще один вход и выход, показывающий слои 3, 4 и 5. Обратите внимание на горизонтальные линии вверху, которые очень близко друг к другу. В этих случаях недостаточно места, чтобы заполнить любые символы там.
+-----------------------------------------------------------------------+
| +--------------------------------------------------------------+ |
| | +-----------------------------------------------------+ | |
| | | +-----------------------------------------+ | | |
| | | | +---------------------------+ | | | |
| | | | | +-------------+ | | | | |
| | | | | | | | | | | |
| | | | | +-------------+ | | | | |
| | | | +---------------------------+ | | | |
| | | | | | | |
| | | +-----------------------------------------+ | | |
| | | | | |
| | | | | |
| | +-----------------------------------------------------+ | |
| | | |
| +--------------------------------------------------------------+ |
| |
| |
| |
+-----------------------------------------------------------------------+
Выход:
+-----------------------------------------------------------------------+
|#####+--------------------------------------------------------------+##|
|#####|======+-----------------------------------------------------+=|##|
|#####|======|---------+-----------------------------------------+-|=|##|
|#####|======|---------|...........+---------------------------+.|-|=|##|
|#####|======|---------|...........| +-------------+ |.|-|=|##|
|#####|======|---------|...........| | | |.|-|=|##|
|#####|======|---------|...........| +-------------+ |.|-|=|##|
|#####|======|---------|...........+---------------------------+.|-|=|##|
|#####|======|---------|.........................................|-|=|##|
|#####|======|---------+-----------------------------------------+-|=|##|
|#####|======|-----------------------------------------------------|=|##|
|#####|======|-----------------------------------------------------|=|##|
|#####|======+-----------------------------------------------------+=|##|
|#####|==============================================================|##|
|#####+--------------------------------------------------------------+##|
|#######################################################################|
|#######################################################################|
|#######################################################################|
+-----------------------------------------------------------------------+
Еще один вход, на этот раз с вертикальными линиями, также близко друг к другу:
+-------------+
|+-----------+|
|| ||
|| ||
|| ||
|+-----------+|
+-------------+
Выход:
+-------------+
|+-----------+|
||===========||
||===========||
||===========||
|+-----------+|
+-------------+
Дополнительные замечания
- Вокруг самой внешней коробки могут быть пробелы.
- Коробки не могут иметь внутреннюю ширину или высоту 0 (поэтому они всегда будут иметь некоторое пространство внутри них)
- Коробки на одном слое могут касаться друг друга.
import java.util.Scanner
наimport java.util.*