The Dal Segno dan Da Capo adalah dua sangat umum digunakan istilah musik. Mereka berarti " dari tanda " (𝄋) dan " dari awal " masing-masing.
Ada juga ide coda (𝄌), yang merupakan akhir dari sebuah musik. Ini yang dimainkan setelah "bagian utama" dari karya tersebut.
A DS al coda ( Dal Segno al coda ), misalnya, berarti "pergi ke segno , bermain sampai Anda diperintahkan untuk pergi ke coda , dan kemudian melompat ke sana."
Deskripsi
Tugas Anda dalam tantangan ini adalah untuk mengambil input yang terdiri dari sejumlah catatan yang mungkin atau mungkin tidak mengandung Dal Segno dan Da Capo dan menghasilkan musik yang sama dengan lompatan yang disebutkan sebelumnya "dibuka" sehingga pengulangan diperluas dengan kata demi kata.
Memasukkan
Kode Anda harus sebagai input urutan catatan atau sinyal (di sini didefinisikan sebagai selain catatan), dipisahkan oleh spasi dalam satu string.
Catatan yang salah
a
,b
,c
,d
,e
,f
, ataug
, dengan opsional#
ataub
ditambahkan (untuk tujuan tantangan ini, tidak ada ritme).A
C
(modal c) menunjukkan tanda coda . Akan selalu ada nol atau dua tanda coda ; tanda coda pertama mewakili dari mana harus melompat, dan yang kedua mewakili ke mana harus melompat.Sebuah
S
(modal s) merupakan signo menandai. Akan selalu ada baik nol atau satu signo menandai (s).Tanda
F
(kapital f) menunjukkan tanda yang baik . Ini "mengganti" bagian akhir karya — lebih dari itu di bawah ini. Akan selalu ada nol atau satu tanda halus .Salah satu string teks berikut ini mewakili:
D.S. al fine
: pergi ke signo dan mainkan sampai akhir bagian atau tanda halus (jika ada).D.S. al coda
: pergi ke signo , mainkan sampai coda , lalu lompat ke tanda coda kedua dan mainkan sampai akhir karya.D.C. al fine
: pergi ke awal, bermain sampai akhir atau penandaan halus .D.C. al coda
: pergi ke awal, bermain sampai coda , lalu lompat ke tanda coda kedua dan mainkan sampai akhir karya.
Akan selalu ada minimum nol dan maksimum satu dari setiap string per potong. Tidak akan pernah ada banyak
al fine
s atau kelipatanal coda
dalam satu potong.
Keluaran
Kode Anda harus ditampilkan dalam format string yang serupa: daftar catatan, dipisahkan oleh spasi.
Anda mungkin selalu berasumsi bahwa output akan berakhir dengan satu atau lebih karakter.
Uji kasus
Masuk: a# bb c b a
Keluar:a# bb c b a
Masuk: a S b D.S. al fine c
Keluar:a b b c
Masuk: a S b C c D.S. al coda d C e
Keluar:a b c b e
Masuk: a b F c d D.C. al fine e f
Keluar:a b c d a b
Masuk: a b D.C. al fine c d F e f
Keluar:a b a b c d
Masuk: a b C c d D.C. al coda e f C g g#
Keluar:a b c d a b g g#
Masuk: a b D.C. al coda c d C e f C g g#
Keluar:a b a b c d g g#
Masuk: a b S c d C D.C. al coda C D.S. al fine e f F g
Keluar:a b c d a b c d c d e f
Masuk: a S b C c D.S. al coda C d D.S. al fine e F f
Keluar:a b c b d b c d e
Masuk: a b C c d D.C. al coda e f F g g# C gb a# D.C. al fine
Keluar:a b c d a b gb a# a b c d e f
Masuk: a F b C D.C. al coda C D.C. al fine
Keluar:a b a b a
Masuk: C a S b D.C. al coda C c D.S. al fine d
Keluar:a b c b c d
Masuk: a S b D.S. al coda C C c D.C. al fine
Keluar:a b b c a b c
Masuk: a F C b C D.C. al coda D.C. al fine
Keluar:a b a a
Aturan
Tanda-tanda akan selalu muncul dalam urutan logis. Artinya, tidak akan pernah ada
S
setelahD.S.
dan akan selalu ada sebelumnya, dll.Ini adalah kode-golf , jadi kode terpendek dalam byte akan menang.