Dal SegnoและDa Capoสองมากมักใช้แง่ดนตรี พวกเขาหมายถึง " จากเครื่องหมาย " (𝄋) และ " จากจุดเริ่มต้น " ตามลำดับ
นอกจากนี้ยังมีความคิดของcoda (𝄌) ซึ่งเป็นจุดสิ้นสุดของเพลงชิ้นหนึ่ง มันคือสิ่งที่เล่นหลังจาก "ส่วนหลัก" ของชิ้นส่วน
DS อัลตอนจบ ( Dal Segno อัลตอนจบ ) ตัวอย่างเช่นหมายถึง "ไปSegnoเล่นจนกว่าคุณจะบอกว่าจะไปตอนจบแล้วกระโดดมี."
ลักษณะ
งานของคุณในการท้าทายนี้คือการป้อนข้อมูลประกอบด้วยโน้ตจำนวนเท่าใดก็ได้ที่อาจมีหรือไม่มีDal DalnoและDa Capo s และส่งออกเพลงเดียวกันกับการกระโดดข้าม "ดังกล่าว" เพื่อให้การทำซ้ำจะขยายออกเป็นคำต่อคำ
อินพุต
รหัสของคุณควรใช้เป็นลำดับของบันทึกย่อหรือสัญญาณ (ที่นี่กำหนดเป็นอะไรก็ได้ยกเว้นโน้ต) คั่นด้วยช่องว่างในสตริงเดียว
หมายเหตุใด ๆ ของ
a
,b
,c
,d
,e
,f
หรือg
มีตัวเลือก#
หรือb
ผนวก (สำหรับวัตถุประสงค์ของความท้าทายนี้ไม่มีจังหวะ)A
C
(ตัวใหญ่ c) หมายถึงเครื่องหมายตอนจบ ก็คือจะมีทั้งศูนย์หรือสองตอนจบเครื่องหมาย; เครื่องหมายcodaแรกแสดงถึงตำแหน่งที่จะกระโดดจากและเครื่องหมายที่สองแสดงถึงตำแหน่งที่จะข้ามไปS
(เมืองหลวง s) แสดงให้เห็นถึงSignoเครื่องหมาย ก็คือจะมีทั้งศูนย์หรือหนึ่งSignoเครื่องหมาย (s)F
(เมืองหลวงฉ) หมายถึงการปรับการทำเครื่องหมาย "แทนที่" ส่วนท้ายของส่วนนี้ - เพิ่มเติมจากด้านล่าง ก็คือจะมีทั้งศูนย์หรือหนึ่งปรับเครื่องหมาย (s)สตริงข้อความที่ถูกต้องใด ๆ ต่อไปนี้แสดง:
D.S. al fine
: ไปที่Signoและเล่นจนถึงปลายทั้งสองของชิ้นหรือที่ปรับเครื่องหมาย (ถ้ามี)D.S. al coda
: ไปที่signoเล่นจนกระทั่งcodaจากนั้นข้ามไปที่codaที่สองแล้วเล่นจนจบส่วนD.C. al fine
: ไปที่จุดเริ่มต้นที่เล่นจนจบหรือปรับการทำเครื่องหมายD.C. al coda
: ไปที่จุดเริ่มต้นเล่นจนถึงตอนจบจากนั้นข้ามไปที่เครื่องหมายตอนจบตอนที่สองและเล่นจนถึงจุดสิ้นสุดของชิ้นส่วน
จะมีค่าต่ำสุดเป็นศูนย์เสมอและสูงสุดหนึ่งในแต่ละสตริงต่อชิ้น จะไม่มีหลาย
al fine
s หรือหลายal coda
s ในชิ้นเดียว
เอาท์พุต
รหัสของคุณควรส่งออกในรูปแบบสตริงที่คล้ายกัน: รายการบันทึกคั่นด้วยช่องว่าง
คุณอาจคิดว่าผลลัพธ์จะจบลงด้วยความยาวอย่างน้อยหนึ่งตัว
กรณีทดสอบ
เข้า: 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.
และจะมีหนึ่งก่อน ฯลฯนี่คือโค้ดกอล์ฟดังนั้นโค้ดที่สั้นที่สุดเป็นไบต์จะเป็นผู้ชนะ