Tugas Anda adalah untuk mengambil urutan karakter (musik) sebagai input (dalam suatu fungsi atau program), dan mencetak (atau mengembalikan) musik seperti yang terlihat di kotak musik.
Anda hanya akan menerima karakter ABCDEFG.()
sebagai input, dan input tidak akan pernah kosong. Anda juga dapat menerima surat dalam huruf kecil, jika Anda menginginkannya.
Ini adalah kotak musik kosong, dengan panjang 3:
.......
.......
.......
Seperti yang Anda lihat, panjangnya 7 karakter, dan karena panjang kotak musiknya 3, kami punya 3 baris. Hanya ada .
di sini, karena kotak musik kosong. Mari kita masukkan musik ke dalamnya!
Pertama, kami membuat kotak musik. Dalam contoh ini, inputnya adalah CDAG.DAG
.
Panjangnya CDAG.DAG
8, jadi kita perlu kotak musik dengan panjang 8:
.......
.......
.......
.......
.......
.......
.......
.......
Kemudian, kita membaca input, satu karakter pada satu waktu, dan menempatkan sebuah O
di posisi masing-masing.
Karakter pertama adalah C
, dan lokasi setiap catatan setara dengan ini (saya menambahkan spasi untuk kejelasan):
A B C D E F G
. . . . . . .
. . . . . . .
(and so on)
Jika karakter input adalah a .
, maka kita cukup mencetak baris kosong.......
Jadi, itu C
akan menjadi karakter ke-3. Mari kita taruh di kotak musik kita di atas:
..O....
.......
.......
.......
.......
.......
.......
.......
Kami akan mengulangi proses ini untuk semua karakter lain (teks dalam tanda kurung hanya untuk menunjukkan catatan kepada Anda, Anda tidak harus menampilkannya):
..O.... (C)
...O... (D)
O...... (A)
......O (G)
....... (.)
...O... (D)
O...... (A)
......O (G)
Karena cara kerja kotak musik, jika kita menggunakan karakter selain O
, .
dan <insert newline here>
, seperti spasi, di output kita, maka itu tidak akan memainkan musik yang benar!
Ini adalah kunci:
(ACE)
Akord ini memerintahkan kita untuk memainkan not A
, C
dan E
pada saat yang sama. Tidak akan ada jeda (yaitu a .
) dalam sebuah akor.
Beginilah caranya ditulis:
O.O.O...
Dan beginilah tampilannya di musik: B(ACE)D
Anda tidak akan pernah menerima akor dalam akor, artinya ini tidak valid: (AB(CD)EF)
atau ini A(B())
:, dan akor tidak akan kosong, artinya ini tidak valid:A()B
Anda tidak akan pernah menerima input yang tidak valid.
Contoh:
B(ACE)D
.O.....
O.O.O..
...O...
B
.O.....
GGABC
......O
......O
O......
.O.....
..O....
...
.......
.......
.......
A..F.C(DA).
O......
.......
.......
.....O.
.......
..O....
O..O...
.......
.(ABCDEF)
.......
OOOOOO.
Trailing / spasi putih terkemuka pada output diizinkan.
Karena ini adalah kode-golf , kode terpendek menang!
()
dua kali (mis .AB(CD)E(FG)
:) ??