Lihatlah diagram seni ascii ini dari berbagai kotak:
+--------------------------------------------------------------+
| |
| +-------------------------------+ +-------+ |
| | | | | |
| | | | | |
| | +----------------+ | | | |
| | | | | +-------+ |
| | | | | |
| | | | | +-------+ |
| | +----------------+ | | | |
| | | | | |
| | | | | |
| +-------------------------------+ +-------+ |
| |
+--------------------------------------------------------------+
Setiap kotak dibentuk dengan karakter pipa untuk bagian vertikal ( |
), strip untuk bagian horizontal ( -
), dan plus untuk sudut ( +
).
Diagram juga menunjukkan kotak di dalam kotak lain. Kami akan memanggil jumlah kotak yang berisi kotak dalam lapisan kotak itu . Berikut diagram lagi dengan lapisan setiap kotak beranotasi:
+--------------------------------------------------------------+
| |
| +-------------------------------+ +-------+ |
| | | | | |
| | | | 1 | |
| | +----------------+ | | | |
| | | | | 0 +-------+ |
| | | 2 | 1 | |
| | | | | +-------+ |
| | +----------------+ | | | |
| | | | 1 | |
| | | | | |
| +-------------------------------+ +-------+ |
| |
+--------------------------------------------------------------+
Program Anda akan menerima diagram kotak serupa dengan yang ada di atas sebagai input. Sebagai output, program Anda harus menampilkan diagram kotak dengan:
- Kotak pada layer 0 harus diisi dengan karakter
#
(NB: Hanya akan ada satu kotak di layer 0); - Kotak pada layer 1 harus diisi dengan karakter
=
; - Kotak pada layer 2 harus diisi dengan karakter
-
; - Kotak pada layer 3 harus diisi dengan karakter
.
; - Kotak pada layer 4 dan di atasnya tidak boleh diisi.
Berikut tampilan output dari contoh input:
+--------------------------------------------------------------+
|##############################################################|
|###+-------------------------------+##########+-------+#######|
|###|===============================|##########|=======|#######|
|###|===============================|##########|=======|#######|
|###|=====+----------------+========|##########|=======|#######|
|###|=====|----------------|========|##########+-------+#######|
|###|=====|----------------|========|##########################|
|###|=====|----------------|========|##########+-------+#######|
|###|=====+----------------+========|##########|=======|#######|
|###|===============================|##########|=======|#######|
|###|===============================|##########|=======|#######|
|###+-------------------------------+##########+-------+#######|
|##############################################################|
+--------------------------------------------------------------+
Berikut ini adalah input dan output lain yang menunjukkan layer 3, 4, dan 5. Perhatikan garis horizontal di atas yang sangat berdekatan. Dalam kasus ini tidak ada cukup ruang untuk mengisi karakter apa pun di sana.
+-----------------------------------------------------------------------+
| +--------------------------------------------------------------+ |
| | +-----------------------------------------------------+ | |
| | | +-----------------------------------------+ | | |
| | | | +---------------------------+ | | | |
| | | | | +-------------+ | | | | |
| | | | | | | | | | | |
| | | | | +-------------+ | | | | |
| | | | +---------------------------+ | | | |
| | | | | | | |
| | | +-----------------------------------------+ | | |
| | | | | |
| | | | | |
| | +-----------------------------------------------------+ | |
| | | |
| +--------------------------------------------------------------+ |
| |
| |
| |
+-----------------------------------------------------------------------+
Hasil:
+-----------------------------------------------------------------------+
|#####+--------------------------------------------------------------+##|
|#####|======+-----------------------------------------------------+=|##|
|#####|======|---------+-----------------------------------------+-|=|##|
|#####|======|---------|...........+---------------------------+.|-|=|##|
|#####|======|---------|...........| +-------------+ |.|-|=|##|
|#####|======|---------|...........| | | |.|-|=|##|
|#####|======|---------|...........| +-------------+ |.|-|=|##|
|#####|======|---------|...........+---------------------------+.|-|=|##|
|#####|======|---------|.........................................|-|=|##|
|#####|======|---------+-----------------------------------------+-|=|##|
|#####|======|-----------------------------------------------------|=|##|
|#####|======|-----------------------------------------------------|=|##|
|#####|======+-----------------------------------------------------+=|##|
|#####|==============================================================|##|
|#####+--------------------------------------------------------------+##|
|#######################################################################|
|#######################################################################|
|#######################################################################|
+-----------------------------------------------------------------------+
Input lain, kali ini dengan garis vertikal berdekatan juga:
+-------------+
|+-----------+|
|| ||
|| ||
|| ||
|+-----------+|
+-------------+
Hasil:
+-------------+
|+-----------+|
||===========||
||===========||
||===========||
|+-----------+|
+-------------+
catatan tambahan
- Mungkin ada ruang kosong di sekitar kotak terluar.
- Kotak tidak boleh memiliki lebar internal atau tinggi 0 (sehingga mereka akan selalu ada ruang di dalamnya)
- Kotak pada lapisan yang sama dapat saling menyentuh.
import java.util.Scanner
denganimport java.util.*
CJam,
11411110810410310298 byteCobalah online di Internet juru bahasa CJam .
Bagaimana itu bekerja
sumber
JavaScript ( ES6 ) 156
Jalankan cuplikan di Firefox untuk menguji
sumber
CJam,
7674 byteCobalah online di juru bahasa CJam .
Bagaimana itu bekerja
sumber
APL (Dyalog Unicode) , 50 byte SBCS
Cobalah online!
s←' #=-.+|'
menetapkan string ke variabels
⎕
input yang dievaluasi, harus berupa matriks karakter⎕⍳⍨s
ganti setiap elemen⎕
dengan indeksnya dis
a←
ditugaskan kepadaa
5=
mengembalikan matriks boolean di mana+
-es berada dia
(s[5]
adalah'+'
)(⊢ׯ1*+⍀++\)
ini adalah kereta fungsi:+\
matriks jumlah parsial demi baris+
plus+⍀
matriks jumlah parsial dengan kolom¯1*
yang negatif dengan kekuatan - ubah odds menjadi ¯1 dan evens menjadi 1⊢×
kalikan dengan argumen kereta - kosongkan semuanya kecuali sudut kotak+⍀+\
jumlah parsial demi kolom jumlah parsial demi baris5⌊
minimal itu dan 55|
modulo 5a,¨
memasangkan elemena
dan matriks saat ini0~¨⍨
hapus 0 dari pasangan⊃¨
pertama masing-masing dari apa yang tersisas[ ]
gunakan setiap elemen sebagai indeks dis
sumber
↑⍞⍞...⍞
mengevaluasi dari kanan ke kiri. Sebagai contoh pertama tidak masalah dan saya lupa menyebutkan ini..
di mana seharusnya tidak> <> ,
118 11587 byteCobalah online!
Jika salah satu simbolnya bukan aEh, toh membuatnya-
maka ini bisa lebih pendek 6 byte.sedikitlebih kecilBagaimana itu bekerja:
sumber
C (gcc) ,
190179 byte-11 bytes berkat ceilingcat
Gagal jika sizeof (int)> 9, tetapi kemudian Anda dapat mengambil pelipur lara pada kenyataan bahwa komputer Anda dari masa depan.
Cobalah online!
sumber