Dê uma olhada neste diagrama de arte ascii de várias caixas:
+--------------------------------------------------------------+
| |
| +-------------------------------+ +-------+ |
| | | | | |
| | | | | |
| | +----------------+ | | | |
| | | | | +-------+ |
| | | | | |
| | | | | +-------+ |
| | +----------------+ | | | |
| | | | | |
| | | | | |
| +-------------------------------+ +-------+ |
| |
+--------------------------------------------------------------+
Cada caixa é formada com caracteres de tubo para as partes verticais ( |
), traços para as partes horizontais ( -
) e vantagens para os cantos ( +
).
O diagrama também mostra caixas dentro de outras caixas. Vamos chamar o número de caixas que uma caixa está contida na camada dessa caixa . Aqui está o diagrama novamente com a camada de cada caixa anotada:
+--------------------------------------------------------------+
| |
| +-------------------------------+ +-------+ |
| | | | | |
| | | | 1 | |
| | +----------------+ | | | |
| | | | | 0 +-------+ |
| | | 2 | 1 | |
| | | | | +-------+ |
| | +----------------+ | | | |
| | | | 1 | |
| | | | | |
| +-------------------------------+ +-------+ |
| |
+--------------------------------------------------------------+
Seu programa utilizará um diagrama de caixa semelhante ao da parte superior como entrada. Como saída, seu programa deve exibir o diagrama de caixa com:
- A caixa na camada 0 deve ser preenchida com o caractere
#
(Nota: sempre haverá uma caixa na camada 0); - Caixas na camada 1 devem ser preenchidas com o caractere
=
; - Caixas na camada 2 devem ser preenchidas com o caractere
-
; - As caixas na camada 3 devem ser preenchidas com o caractere
.
; - Caixas na camada 4 e acima não devem ser preenchidas.
Aqui está como deve ser a saída da entrada de exemplo:
+--------------------------------------------------------------+
|##############################################################|
|###+-------------------------------+##########+-------+#######|
|###|===============================|##########|=======|#######|
|###|===============================|##########|=======|#######|
|###|=====+----------------+========|##########|=======|#######|
|###|=====|----------------|========|##########+-------+#######|
|###|=====|----------------|========|##########################|
|###|=====|----------------|========|##########+-------+#######|
|###|=====+----------------+========|##########|=======|#######|
|###|===============================|##########|=======|#######|
|###|===============================|##########|=======|#######|
|###+-------------------------------+##########+-------+#######|
|##############################################################|
+--------------------------------------------------------------+
Aqui está outra entrada e saída mostrando as camadas 3, 4 e 5. Observe as linhas horizontais na parte superior que estão muito próximas. Nesses casos, não há espaço suficiente para preencher nenhum caractere lá.
+-----------------------------------------------------------------------+
| +--------------------------------------------------------------+ |
| | +-----------------------------------------------------+ | |
| | | +-----------------------------------------+ | | |
| | | | +---------------------------+ | | | |
| | | | | +-------------+ | | | | |
| | | | | | | | | | | |
| | | | | +-------------+ | | | | |
| | | | +---------------------------+ | | | |
| | | | | | | |
| | | +-----------------------------------------+ | | |
| | | | | |
| | | | | |
| | +-----------------------------------------------------+ | |
| | | |
| +--------------------------------------------------------------+ |
| |
| |
| |
+-----------------------------------------------------------------------+
A saída:
+-----------------------------------------------------------------------+
|#####+--------------------------------------------------------------+##|
|#####|======+-----------------------------------------------------+=|##|
|#####|======|---------+-----------------------------------------+-|=|##|
|#####|======|---------|...........+---------------------------+.|-|=|##|
|#####|======|---------|...........| +-------------+ |.|-|=|##|
|#####|======|---------|...........| | | |.|-|=|##|
|#####|======|---------|...........| +-------------+ |.|-|=|##|
|#####|======|---------|...........+---------------------------+.|-|=|##|
|#####|======|---------|.........................................|-|=|##|
|#####|======|---------+-----------------------------------------+-|=|##|
|#####|======|-----------------------------------------------------|=|##|
|#####|======|-----------------------------------------------------|=|##|
|#####|======+-----------------------------------------------------+=|##|
|#####|==============================================================|##|
|#####+--------------------------------------------------------------+##|
|#######################################################################|
|#######################################################################|
|#######################################################################|
+-----------------------------------------------------------------------+
Outra entrada, desta vez com as linhas verticais próximas também:
+-------------+
|+-----------+|
|| ||
|| ||
|| ||
|+-----------+|
+-------------+
A saída:
+-------------+
|+-----------+|
||===========||
||===========||
||===========||
|+-----------+|
+-------------+
Notas Adicionais
- Pode haver espaço em branco ao redor da caixa mais externa.
- As caixas não podem ter uma largura ou altura interna de 0 (portanto, sempre haverá algum espaço dentro delas)
- Caixas na mesma camada podem se tocar.
import java.util.Scanner
porimport java.util.*