ダル・セーニョとダ・カーポは、 2つの非常に一般的に使用される音楽用語です。彼らは、「意味記号から(𝄋)」と「最初からそれぞれ」。
また、曲の最後であるコーダ(𝄌)の概念もあります。曲の「メインセクション」の後に再生されます。
A DSアルコーダ(ダル・セーニョアルコーダは)、例えば、手段は「に行くSEGNOあなたがに行くように言われているまで、プレーをコーダ、そしてそこにジャンプします。」
説明文
この課題でのあなたの仕事は、Dal SegnoとDa Capoが含まれる場合と含まれない場合がある任意の数のノートで構成される入力を取得し、前述のジャンプを「展開」して同じ音楽を出力し、繰り返しが逐語的に拡張されるようにすることです。
入力
コードは、1つの文字列でスペースで区切られた一連のメモまたは信号(ここではメモ以外と定義)のシーケンスを入力として受け取る必要があります。
ノートは任意であり
a
、b
、c
、d
、e
、f
、又はg
、任意で#
またはb
付加(この課題の目的のために、何のリズムが存在しません)。A
C
(大文字c)はcodaマーキングを表します。コーダマーキングは常にゼロまたは2つあります。最初のコーダマーキングはどこからジャンプするかを表し、2番目のコーダマーキングはどこにジャンプするかを表します。S
(資本s)は表しSIGNOマーキングを。常に0または1つのsignoマーキングがあります。F
(資本f)は表し細かいマーキングを。これはピースの終わりを「オーバーライド」します。詳しくは以下を参照してください。ゼロまたは1つの微細なマーキングが常に存在します。以下のテキストの正確な文字列のいずれかが表します。
D.S. al fine
:signoに移動し、曲の最後または細かいマーキング(存在する場合)のいずれかまで再生します。D.S. al coda
:signoに移動し、コーダまで再生してから、2番目のコーダマーキングにジャンプして、ピースの最後まで再生します。D.C. al fine
:最初に移動し、最後または細かいマーキングまで再生します。D.C. al coda
:最初に移動し、コーダまで再生してから、2番目のコーダマーキングにジャンプして、ピースの最後まで再生します。
ピースごとに各ストリングの最小値は常にゼロであり、最大値は1です。ピースに複数
al fine
のや複数al coda
のが含まれることはありません。
出力
コードは同様の文字列形式で出力する必要があります。スペースで区切られたメモのリストです。
出力は最終的に1文字以上になると常に想定することができます。
テストケース
イン:a# bb c b a
アウト:a# bb c b a
イン:a S b D.S. al fine c
アウト:a b b c
イン:a S b C c D.S. al coda d C e
アウト:a b c b e
イン:a b F c d D.C. al fine e f
アウト:a b c d a b
イン:a b D.C. al fine c d F e f
アウト:a b a b c d
イン:a b C c d D.C. al coda e f C g g#
アウト:a b c d a b g g#
イン:a b D.C. al coda c d C e f C g g#
アウト:a b a b c d g g#
イン:a b S c d C D.C. al coda C D.S. al fine e f F g
アウト:a b c d a b c d c d e f
イン:a S b C c D.S. al coda C d D.S. al fine e F f
アウト:a b c b d b c d e
イン:a b C c d D.C. al coda e f F g g# C gb a# D.C. al fine
アウト:a b c d a b gb a# a b c d e f
イン:a F b C D.C. al coda C D.C. al fine
アウト:a b a b a
イン:C a S b D.C. al coda C c D.S. al fine d
アウト:a b c b c d
イン:a S b D.S. al coda C C c D.C. al fine
アウト:a b b c a b c
イン:a F C b C D.C. al coda D.C. al fine
アウト:a b a a
ルール
マーキングは常に論理的な順序で表示されます。つまり、アフターアは決してなく、
S
アフターアフターD.S.
は常に1つ前などがあります。これはcode-golfなので、バイト単位の最短コードが優先されます。