यह संगीत का विपरीत है : इस राग में क्या है? , जो दिए गए कॉर्ड में नोटों को प्रिंट करना है। इस बार इनपुट एक कॉर्ड में नोटों की एक सूची है, और आपका कार्य आउटपुट करना है कि यह किस कॉर्ड में है।
आपके कार्यक्रम को निम्नलिखित त्रैमासिक chords का समर्थन करना चाहिए। जड़ सी के साथ उदाहरण दिए गए हैं। अन्य जड़ों के साथ जीवा समान हैं, सभी नोटों के साथ एक ही तार होते हैं, इसलिए C, मूल नोट बन जाएगा, जैसे Dmaj में D, F # और A शामिल हैं।
C C#D D#E F F#G G#A A#B
Db Eb Gb Ab Bb
Cmaj C E G
Cm C D# G
Caug C E G#
Cdim C D# F#
Csus4 C F G
Csus2 C D G
ध्यान दें कि Caug Eaug और G # aug के समान है, और Csus4 Fsus2 के समान है। आप या तो एक आउटपुट कर सकते हैं लेकिन एक बोनस है अगर आप उन सभी का उत्पादन करते हैं।
और बोनस के लिए सातवें तार को निम्नलिखित तालिका में सूचीबद्ध किया गया है:
C C#D D#E F F#G G#A A#B
Db Eb Gb Ab Bb
C7 C E G A#
Cm7 C D# G A#
Cmmaj7 C D# G B
Cmaj7 C E G B
Caug7 C E G# A#
Cdim7 C D# F# A
नियम
- आप या तो एक पूरा कार्यक्रम या एक फ़ंक्शन लिख सकते हैं।
- इनपुट नोटों की एक सूची है, जो एक स्थान या किसी अन्य सुविधाजनक चरित्र द्वारा अलग किया गया है। यह स्ट्रिंग्स का एक सरणी भी हो सकता है (यदि यह फ़ंक्शन तर्क से इनपुट लेता है) या ऐसे ऐरे का स्ट्रिंग प्रतिनिधित्व।
- इनपुट को विशिष्ट क्रम में नहीं होना चाहिए।
- इनपुट में नकली नोट हो सकते हैं। उनके साथ वैसा ही व्यवहार किया जाना चाहिए जैसा कि उनमें से एक है।
- आउटपुट कॉर्ड का नाम है। यदि यह कई नामों का उत्पादन करेगा, तो इनपुट के लिए एक ही नियम लागू होगा।
- यदि इनपुट एक समर्थित कॉर्ड नहीं है, तो आपको नोट्स को इस तरह प्रिंट करना चाहिए। आपका कार्यक्रम ऊपर दी गई तालिकाओं में सूचीबद्ध नहीं किए गए अन्य रागों का भी समर्थन कर सकता है (जो कि मान्य है लेकिन कोई बोनस नहीं है)।
- आप विकिपीडिया लेख में सूचीबद्ध अन्य सूचनाओं का उपयोग कर सकते हैं । लेकिन यदि आप
C
सी प्रमुख के लिए चुनते हैं , तो आपको एकल नोट के साथ कॉर्ड को अलग करने के लिए किसी भी मामले में एक मानव पठनीय उपसर्ग जोड़ना चाहिए। - आप इस कार्य के लिए बिल्ट-इन फ़ंक्शन का उपयोग नहीं कर सकते हैं (यदि कोई हो)।
- यह कोड-गोल्फ है। बाइट्स में सबसे छोटा कोड जीतता है।
उदाहरण
- इनपुट:
C D# G
आउटपुट:Cm
। - इनपुट:
C Eb G
आउटपुट:Cm
। - इनपुट:
C Eb F#
आउटपुट:Cdim
। - इनपुट:
F A C#
आउटपुट:Faug
,Aaug
,C#aug
,Dbaug
याFaug Aaug C#aug
,Faug Aaug Dbaug
किसी भी क्रम में। - इनपुट:
F D F F F F A A F
आउटपुट:Dm
। - इनपुट:
C D
आउटपुट:C D
।
बोनस
- -30 यदि यह उन सभी को प्रिंट करता है यदि एक से अधिक व्याख्याएं हैं (ईजी, एसयूएस 4 / एसयूएस 2 और डिम 7 के लिए)।
- -70 यदि यह सातवें तार का भी समर्थन करता है।
- -200 अगर यह मिडी इनपुट को स्वीकार करता है और इसे प्राप्त प्रत्येक कॉर्ड को प्रिंट करता है। ध्यान दें कि नोट्स एक ही समय में शुरू या समाप्त नहीं होने चाहिए। आप तय करते हैं कि मध्यवर्ती राज्यों में क्या होता है (जब तक यह दुर्घटना नहीं करता है या काम करना बंद नहीं करता है)। आप मान सकते हैं कि टक्कर चैनलों में कोई नोट नहीं हैं (या यदि सुविधाजनक है तो केवल एक ही चैनल है)। यह परीक्षण के लिए एक पाठ (या सरणी) संस्करण प्रदान करने की भी सिफारिश की जाती है, खासकर अगर यह प्लेटफ़ॉर्म-निर्भर है।
B#
, Cb
आदि
Csus4 is the same as Gsus2
। मुझे लगता है कि आपका मतलब Csus2 is the same as Gsus4
यह नहीं है?