Eche un vistazo a este diagrama de arte ascii de varias cajas:
+--------------------------------------------------------------+
| |
| +-------------------------------+ +-------+ |
| | | | | |
| | | | | |
| | +----------------+ | | | |
| | | | | +-------+ |
| | | | | |
| | | | | +-------+ |
| | +----------------+ | | | |
| | | | | |
| | | | | |
| +-------------------------------+ +-------+ |
| |
+--------------------------------------------------------------+
Cada cuadro se forma con caracteres de tubería para las partes verticales ( |
), guiones para las partes horizontales ( -
) y más para las esquinas ( +
).
El diagrama también muestra cuadros dentro de otros cuadros. Llamaremos al número de cajas que contiene una caja dentro de la capa de esa caja . Aquí está el diagrama nuevamente con la capa de cada cuadro anotado:
+--------------------------------------------------------------+
| |
| +-------------------------------+ +-------+ |
| | | | | |
| | | | 1 | |
| | +----------------+ | | | |
| | | | | 0 +-------+ |
| | | 2 | 1 | |
| | | | | +-------+ |
| | +----------------+ | | | |
| | | | 1 | |
| | | | | |
| +-------------------------------+ +-------+ |
| |
+--------------------------------------------------------------+
Su programa tomará un diagrama de caja similar al que está en la parte superior como entrada. Como salida, su programa debería generar el diagrama de caja con:
- El cuadro en la capa 0 debe llenarse con el carácter
#
(NB: solo habrá un cuadro en la capa 0); - Las casillas de la capa 1 deben llenarse con el personaje
=
; - Las casillas en la capa 2 deben llenarse con el personaje
-
; - Las casillas de la capa 3 deben llenarse con el personaje
.
; - Las casillas de la capa 4 y superiores no deben llenarse.
Así es como debería verse la salida de la entrada de ejemplo:
+--------------------------------------------------------------+
|##############################################################|
|###+-------------------------------+##########+-------+#######|
|###|===============================|##########|=======|#######|
|###|===============================|##########|=======|#######|
|###|=====+----------------+========|##########|=======|#######|
|###|=====|----------------|========|##########+-------+#######|
|###|=====|----------------|========|##########################|
|###|=====|----------------|========|##########+-------+#######|
|###|=====+----------------+========|##########|=======|#######|
|###|===============================|##########|=======|#######|
|###|===============================|##########|=======|#######|
|###+-------------------------------+##########+-------+#######|
|##############################################################|
+--------------------------------------------------------------+
Aquí hay otra entrada y salida que muestra las capas 3, 4 y 5. Observe las líneas horizontales en la parte superior que están muy juntas. En estos casos, no hay suficiente espacio para llenar ningún personaje allí.
+-----------------------------------------------------------------------+
| +--------------------------------------------------------------+ |
| | +-----------------------------------------------------+ | |
| | | +-----------------------------------------+ | | |
| | | | +---------------------------+ | | | |
| | | | | +-------------+ | | | | |
| | | | | | | | | | | |
| | | | | +-------------+ | | | | |
| | | | +---------------------------+ | | | |
| | | | | | | |
| | | +-----------------------------------------+ | | |
| | | | | |
| | | | | |
| | +-----------------------------------------------------+ | |
| | | |
| +--------------------------------------------------------------+ |
| |
| |
| |
+-----------------------------------------------------------------------+
La salida:
+-----------------------------------------------------------------------+
|#####+--------------------------------------------------------------+##|
|#####|======+-----------------------------------------------------+=|##|
|#####|======|---------+-----------------------------------------+-|=|##|
|#####|======|---------|...........+---------------------------+.|-|=|##|
|#####|======|---------|...........| +-------------+ |.|-|=|##|
|#####|======|---------|...........| | | |.|-|=|##|
|#####|======|---------|...........| +-------------+ |.|-|=|##|
|#####|======|---------|...........+---------------------------+.|-|=|##|
|#####|======|---------|.........................................|-|=|##|
|#####|======|---------+-----------------------------------------+-|=|##|
|#####|======|-----------------------------------------------------|=|##|
|#####|======|-----------------------------------------------------|=|##|
|#####|======+-----------------------------------------------------+=|##|
|#####|==============================================================|##|
|#####+--------------------------------------------------------------+##|
|#######################################################################|
|#######################################################################|
|#######################################################################|
+-----------------------------------------------------------------------+
Otra entrada, esta vez con las líneas verticales juntas también:
+-------------+
|+-----------+|
|| ||
|| ||
|| ||
|+-----------+|
+-------------+
La salida:
+-------------+
|+-----------+|
||===========||
||===========||
||===========||
|+-----------+|
+-------------+
Notas adicionales
- Puede haber espacios en blanco alrededor del cuadro más externo.
- Las cajas no pueden tener un ancho o una altura interna de 0 (por lo que siempre tendrán algo de espacio dentro de ellas)
- Las cajas en la misma capa pueden tocarse entre sí.
import java.util.Scanner
conimport java.util.*