Các Dal Segno và Da Capo hai rất thường được sử dụng thuật ngữ âm nhạc. Chúng có nghĩa là " từ dấu hiệu " (𝄋) và " từ đầu " tương ứng.
Ngoài ra còn có ý tưởng về coda (), đó là phần cuối của một bản nhạc. Đó là những gì được chơi sau "phần chính" của tác phẩm.
Ví dụ, một DS al coda ( Dal Segno al coda ) có nghĩa là "đi đến segno , chơi cho đến khi bạn được yêu cầu đi đến coda , và sau đó nhảy đến đó."
Sự miêu tả
Công việc của bạn trong thử thách này là lấy đầu vào bao gồm bất kỳ số lượng ghi chú nào có thể có hoặc không chứa Dal Segno và Da Capo và phát ra cùng một bản nhạc với các bước nhảy nói trên "mở ra" để các phần lặp lại được mở rộng ra nguyên văn.
Đầu vào
Mã của bạn sẽ lấy đầu vào là một chuỗi các ghi chú hoặc tín hiệu (ở đây được định nghĩa là bất cứ thứ gì ngoại trừ một ghi chú), được phân tách bằng khoảng trắng trong một chuỗi.
Thuyết minh này là bất kỳ
a
,b
,c
,d
,e
,f
, hayg
, với một tùy chọn#
hoặcb
nối (đối với mục đích của thử thách này, không có nhịp điệu).A
C
(vốn c) đại diện cho một dấu coda . Sẽ luôn có 0 hoặc hai dấu coda ; dấu coda đầu tiên đại diện cho nơi để nhảy từ và thứ hai đại diện cho nơi để nhảy đến.Một
S
(vốn s) đại diện cho một signo đánh dấu. Sẽ luôn có một trong hai không hoặc một signo đánh dấu (s).Một
F
(vốn f) đại diện cho một dấu hiệu tốt . Điều này "ghi đè" phần cuối của mảnh ghép nhiều hơn ở bên dưới. Sẽ luôn có 0 hoặc một điểm đánh dấu tốt .Bất kỳ chuỗi văn bản chính xác nào sau đây thể hiện:
D.S. al fine
: Đi đến signo và vui chơi cho đến khi một trong hai phần cuối của mảnh hoặc tốt đánh dấu (nếu nó tồn tại).D.S. al coda
: Đi đến signo , chơi cho đến khi coda , sau đó nhảy đến thứ hai coda đánh dấu và chơi cho đến cuối tác phẩm.D.C. al fine
: đi đến đầu, chơi cho đến khi kết thúc hoặc đánh dấu tốt .D.C. al coda
: đi đến điểm bắt đầu, chơi cho đến khi coda , sau đó nhảy đến dấu coda thứ hai và chơi cho đến khi kết thúc tác phẩm.
Sẽ luôn có tối thiểu bằng 0 và tối đa là một trong mỗi chuỗi trên mỗi mảnh. Sẽ không bao giờ có nhiều
al fine
s hoặc nhiềual coda
s trong một mảnh.
Đầu ra
Mã của bạn sẽ xuất ra ở định dạng chuỗi tương tự: một danh sách các ghi chú, được phân tách bằng dấu cách.
Bạn luôn có thể cho rằng đầu ra cuối cùng sẽ dài một hoặc nhiều ký tự.
Các trường hợp thử nghiệm
Trong: a# bb c b a
Ra:a# bb c b a
Trong: a S b D.S. al fine c
Ra:a b b c
Trong: a S b C c D.S. al coda d C e
Ra:a b c b e
Trong: a b F c d D.C. al fine e f
Ra:a b c d a b
Trong: a b D.C. al fine c d F e f
Ra:a b a b c d
Trong: a b C c d D.C. al coda e f C g g#
Ra:a b c d a b g g#
Trong: a b D.C. al coda c d C e f C g g#
Ra:a b a b c d g g#
Trong: a b S c d C D.C. al coda C D.S. al fine e f F g
Ra:a b c d a b c d c d e f
Trong: a S b C c D.S. al coda C d D.S. al fine e F f
Ra:a b c b d b c d e
Trong: a b C c d D.C. al coda e f F g g# C gb a# D.C. al fine
Ra:a b c d a b gb a# a b c d e f
Trong: a F b C D.C. al coda C D.C. al fine
Ra:a b a b a
Trong: C a S b D.C. al coda C c D.S. al fine d
Ra:a b c b c d
Trong: a S b D.S. al coda C C c D.C. al fine
Ra:a b b c a b c
Trong: a F C b C D.C. al coda D.C. al fine
Ra:a b a a
Quy tắc
Các dấu sẽ luôn xuất hiện theo thứ tự hợp lý. Đó là, sẽ không bao giờ có
S
sauD.S.
và sẽ luôn có một cái trước, v.v.Đây là mã golf , vì vậy mã ngắn nhất tính bằng byte sẽ giành chiến thắng.