กำหนดรายการของคอร์ดที่ระบุว่าเป็น 'Major' หรือ 'Minor'
อินพุต
อินพุตจะเป็นรายการของคอร์ดหนึ่งรายการต่อบรรทัดประกอบด้วย 3 โน้ตคั่นด้วยช่องว่าง แต่ละโน้ตจะประกอบด้วยชื่อโน้ตเป็นตัวพิมพ์ใหญ่ ( A
- G
) และตัวเลือกที่ไม่ตั้งใจ ( #
หรือb
) คอร์ดอาจอยู่ในการผกผันใด ๆ (เช่นบันทึกอาจอยู่ในลำดับใด ๆ )
เอาท์พุต
หากคอร์ดเป็นส่วนใหญ่เอาต์พุต 'เมเจอร์' หากคอร์ดน้อยแสดงผลลัพธ์ 'Minor' หากคอร์ดไม่ได้เป็นหลักหรือรองให้เอาบรรทัดว่างออก
ตัวอย่าง
อินพุต
C E G
F Ab C
C Eb Gb
E G B
Db F Ab
Bb G D
D A Gb
เอาท์พุต
Major
Minor
Minor
Major
Minor
Major
สคริปต์ทดสอบ
ในบางคำถามที่ผ่านมาของฉันฉันได้พบเห็นสคริปต์ทดสอบอีกครั้ง แต่เดิมสร้างโดยJoeyและVenteroเพื่อให้กรณีทดสอบสำหรับคำถามนี้:
การใช้งาน: ./test [your program and its arguments]
รางวัล
แต่ละรายการที่ฉันสามารถตรวจสอบว่าตรงตามข้อกำหนดผ่านการทดสอบและเห็นได้ชัดว่ามีความพยายามในการเล่นกอล์ฟบางอย่างจะได้รับ upvote จากฉัน (ดังนั้นโปรดให้คำแนะนำการใช้งานพร้อมคำตอบของคุณ) ทางออกที่สั้นที่สุดภายใน 13 พ.ย. 2555 จะได้รับการยอมรับในฐานะผู้ชนะ
ทฤษฎีเล็กน้อย
สำหรับผู้ที่ไม่มีความรู้ทฤษฎีดนตรีนี่คือข้อมูลที่เพียงพอสำหรับคุณในการแข่งขัน
คอร์ดหลักหรือคอร์ดรองประกอบด้วยสามโน้ตซึ่งคั่นด้วยรูปแบบของเซมิโคลอนเฉพาะ หากเราพิจารณาว่ารูท (โน้ตล่าง) ของคอร์ดเป็น 0 ดังนั้นคอร์ดหลักคือรูปแบบ 0-4-7 และคอร์ดรองเป็นรูปแบบ 0-3-7 สิ่งต่าง ๆ ถูกทำให้อึดอัดใจมากขึ้นโดยความจริงที่ว่าบางบันทึกแยกออกเป็นสองส่วนและบางอันแยกกันเป็นน้ำเสียง การแพร่กระจายของ semitones จากAb
- G#
เป็นดังนี้:
G#/Ab A A#/Bb B/Cb B#/C C#/Db D D#/Eb E/Fb E#/F F#/Gb G G#/Ab
0 1 2 3 4 5 6 7 8 9 10 11 12
G#/Ab
หมายถึงว่าเป็นโน้ตตัวเดียวกันเป็นG#
Ab
จากนี้เราจะเห็นได้ว่าคอร์ดAb C Eb
นั้นเป็นคอร์ดที่สำคัญและนั่นAb Cb Eb
ก็รองลงมา
จะทำให้เรื่องยุ่งยากเพิ่มเติมคอร์ดEb Cb Ab
ถือว่าเป็นเช่นเดียวกับAb Cb Eb
, Cb Eb Ab
และCb Ab Eb
และอื่น ๆ ทุกรูปแบบเหล่านี้ยังคงเป็นคอร์ดเล็กน้อย