Có một cái nhìn vào sơ đồ nghệ thuật ascii của các hộp khác nhau:
+--------------------------------------------------------------+
| |
| +-------------------------------+ +-------+ |
| | | | | |
| | | | | |
| | +----------------+ | | | |
| | | | | +-------+ |
| | | | | |
| | | | | +-------+ |
| | +----------------+ | | | |
| | | | | |
| | | | | |
| +-------------------------------+ +-------+ |
| |
+--------------------------------------------------------------+
Mỗi hộp được hình thành với các ký tự ống cho các phần dọc ( |
), dấu gạch ngang cho các phần nằm ngang ( -
) và các điểm cộng cho các góc ( +
).
Biểu đồ cũng cho thấy các hộp bên trong các hộp khác. Chúng tôi sẽ gọi số lượng hộp mà một hộp được chứa trong lớp của hộp đó . Đây là sơ đồ một lần nữa với lớp của mỗi hộp được chú thích:
+--------------------------------------------------------------+
| |
| +-------------------------------+ +-------+ |
| | | | | |
| | | | 1 | |
| | +----------------+ | | | |
| | | | | 0 +-------+ |
| | | 2 | 1 | |
| | | | | +-------+ |
| | +----------------+ | | | |
| | | | 1 | |
| | | | | |
| +-------------------------------+ +-------+ |
| |
+--------------------------------------------------------------+
Chương trình của bạn sẽ lấy một sơ đồ hộp tương tự như sơ đồ ở trên cùng làm đầu vào. Là đầu ra, chương trình của bạn sẽ xuất sơ đồ hộp với:
- Hộp trên lớp 0 phải được điền đầy ký tự
#
(NB: Sẽ chỉ có một hộp trên lớp 0); - Các hộp trên lớp 1 phải được điền với ký tự
=
; - Các hộp trên lớp 2 phải được điền với ký tự
-
; - Các hộp trên lớp 3 phải được điền với ký tự
.
; - Hộp trên lớp 4 trở lên không nên điền.
Đây là những gì đầu ra của ví dụ đầu vào sẽ như thế nào:
+--------------------------------------------------------------+
|##############################################################|
|###+-------------------------------+##########+-------+#######|
|###|===============================|##########|=======|#######|
|###|===============================|##########|=======|#######|
|###|=====+----------------+========|##########|=======|#######|
|###|=====|----------------|========|##########+-------+#######|
|###|=====|----------------|========|##########################|
|###|=====|----------------|========|##########+-------+#######|
|###|=====+----------------+========|##########|=======|#######|
|###|===============================|##########|=======|#######|
|###|===============================|##########|=======|#######|
|###+-------------------------------+##########+-------+#######|
|##############################################################|
+--------------------------------------------------------------+
Dưới đây là một đầu vào và đầu ra khác hiển thị các lớp 3, 4 và 5. Lưu ý các đường ngang ở trên cùng rất gần nhau. Trong những trường hợp này không có đủ không gian để điền vào bất kỳ ký tự nào ở đó.
+-----------------------------------------------------------------------+
| +--------------------------------------------------------------+ |
| | +-----------------------------------------------------+ | |
| | | +-----------------------------------------+ | | |
| | | | +---------------------------+ | | | |
| | | | | +-------------+ | | | | |
| | | | | | | | | | | |
| | | | | +-------------+ | | | | |
| | | | +---------------------------+ | | | |
| | | | | | | |
| | | +-----------------------------------------+ | | |
| | | | | |
| | | | | |
| | +-----------------------------------------------------+ | |
| | | |
| +--------------------------------------------------------------+ |
| |
| |
| |
+-----------------------------------------------------------------------+
Đầu ra:
+-----------------------------------------------------------------------+
|#####+--------------------------------------------------------------+##|
|#####|======+-----------------------------------------------------+=|##|
|#####|======|---------+-----------------------------------------+-|=|##|
|#####|======|---------|...........+---------------------------+.|-|=|##|
|#####|======|---------|...........| +-------------+ |.|-|=|##|
|#####|======|---------|...........| | | |.|-|=|##|
|#####|======|---------|...........| +-------------+ |.|-|=|##|
|#####|======|---------|...........+---------------------------+.|-|=|##|
|#####|======|---------|.........................................|-|=|##|
|#####|======|---------+-----------------------------------------+-|=|##|
|#####|======|-----------------------------------------------------|=|##|
|#####|======|-----------------------------------------------------|=|##|
|#####|======+-----------------------------------------------------+=|##|
|#####|==============================================================|##|
|#####+--------------------------------------------------------------+##|
|#######################################################################|
|#######################################################################|
|#######################################################################|
+-----------------------------------------------------------------------+
Một đầu vào khác, lần này cũng có các đường thẳng đứng gần nhau:
+-------------+
|+-----------+|
|| ||
|| ||
|| ||
|+-----------+|
+-------------+
Đầu ra:
+-------------+
|+-----------+|
||===========||
||===========||
||===========||
|+-----------+|
+-------------+
Ghi chú bổ sung
- Có thể có khoảng trắng xung quanh hộp ngoài cùng.
- Các hộp không thể có chiều rộng hoặc chiều cao bên trong bằng 0 (vì vậy chúng sẽ luôn có một khoảng trống bên trong chúng)
- Các hộp trên cùng một lớp có thể chạm vào nhau.
import java.util.Scanner
bằngimport java.util.*