अपने अस्थायी फ़ोल्डर की गहराई में चारों ओर खुदाई, आप पियानो के लिए कुछ रचनाएँ पाते हैं। दुर्भाग्य से, इन रचनाओं को केवल नोट नाम और अवधि के साथ लिखा गया था, और आपके पास केवल एक पाठ टर्मिनल तक पहुंच है। इसलिए, आपका कार्य ASCII कला के रूप में रचनाओं को प्रदर्शित करने के लिए एक कार्यक्रम लिखना है।
इनपुट
आपके प्रोग्राम को इनपुट के रूप में दो स्ट्रिंग्स को स्वीकार करना चाहिए। पहला स्ट्रिंग शीर्ष स्टाफ (तिगुना फांक के साथ) के नोटों का प्रतिनिधित्व करेगा, जबकि दूसरा स्ट्रिंग नीचे के कर्मचारियों के नोटों का प्रतिनिधित्व करेगा।
नोटों को वैज्ञानिक पिच संकेतन में पारित किया जाएगा । शीर्ष स्टाफ के नोट्स हमेशा बीच में C4
और C6
समावेशी होंगे। निचले कर्मचारियों के नोट हमेशा बीच में C2
और C4
समावेशी होंगे।
प्रत्येक नोट एक अवधि, जिनमें से एक हो जाएगा के साथ आ जाएगा: 1
, 2
, 4
, 8
। ये एक पूरे नोट (अर्धवृत्त), एक आधा नोट (न्यूनतम), एक चौथाई नोट (crotchet), और एक आठवें नोट (योग्यता) का प्रतिनिधित्व करते हैं।
किसी अन्य अवधि के नोट इनपुट में कभी नहीं दिखाई देंगे।
नोट और अवधि को कैसे अलग किया जाता है, और इनपुट में प्रत्येक नोट को अन्य नोटों से कैसे अलग किया जाता है, यह आपके विवेक पर निर्भर करता है। निम्नलिखित शीर्ष कर्मचारियों के लिए एक नमूना इनपुट है:
E4/4 A4/8 C#5/8 E5/2
यहां, नोटों को एक स्थान से अलग किया जाता है, और अवधि को नोट से आगे स्लैश के साथ अलग किया जाता है। ये परिधि तय नहीं हैं, और आप उन्हें बदलना चुन सकते हैं या उन्हें पूरी तरह से छोड़ सकते हैं।
आप मान सकते हैं कि प्रत्येक स्टाफ में कम से कम एक नोट है। इनपुट में कोई बाकी नहीं हैं।
उत्पादन
आपका कार्यक्रम निम्न विवरणों के अनुरूप स्कोर को ASCII कला के रूप में आउटपुट करना है।
आपके आउटपुट के बाईं ओर क्लीफ़ पहली चीज़ होनी चाहिए (दो सीढ़ियों के बीच की दूरी को नहीं बदला जाना चाहिए):
^
| |
------|/----
/
-----/|-----
/ |
---/--__----
| / \
---\-\|-|---
\ | /
------|-----
|
\_/
----___-----
/ \ |
---\---|----
| |
-------/----
/
-----/------
------------
यदि किसी कर्मचारी के मध्य रेखा के नीचे नोट है, तो एक नोट का तना (सर्कल के बगल में लंबवत रेखा) ऊपर की ओर इंगित करना चाहिए। यह नीचे की ओर इशारा करना चाहिए अगर नोट किसी स्टाफ की मध्य रेखा के ऊपर है। यदि नोट मध्य रेखा पर है, तो स्टेम किसी भी दिशा में इंगित कर सकता है। (इसका एकमात्र अपवाद बोनस के लिए है, और बाद में वर्णित आठवें नोट को जोड़ने पर होता है)। स्टेम को सर्कल के ऊपर / नीचे की रेखा पर शुरू करना चाहिए, और 6
लाइनें लंबी होनी चाहिए ।
पूरे नोटों को छोड़कर सभी प्रकार के नोटों में तने होते हैं। आठवें नोट के झंडे को अलग-अलग रेखाओं पर दो फॉरवर्ड स्लैश द्वारा दर्शाया गया है (नीचे उदाहरण नोट देखें)।
नोट हेड (तिमाही और आठवें नोटों के लिए) में भरा हुआ है (@)
। एक खाली नोट हेड (आधे और पूरे नोट के लिए) द्वारा दर्शाया गया है ( )
।
एक्सीडेंट (शार्प, फ्लैट्स, नैचुरल) को उदाहरण के नोट्स में दिखाया जाना चाहिए, जिसमें एक्सीडेंटल के दाईं ओर और नोट हेड के बाईं ओर के बीच के एक पात्र के साथ होता है।
जब आवश्यक हो, लेजर लाइनों का उपयोग किया जाना चाहिए और 7
नोट हेड के चारों ओर केंद्रित लंबाई में वर्ण होना चाहिए ।
प्रत्येक नोट 12
वर्ण विस्तृत होना चाहिए ।
उदाहरण नोट:
|_
|_| ( )
| |------
|
------------ ---------|-- ------------ ------------ ------------
|
------------ ---------|-- ---|-------- ------------ ------------
(@) _|_|_ | |_
-----|------ _|_|_-( )--- ---|/-(@)--- ------------ ---------|\-
| | | | | \
-----|------ ------------ -----|------ ------------ ---------|--
| | |
-----|------ ------------ -----|------ ------------ ---------|--
| | / |
|/ --(@)--
quarter note half note eighth note whole note eighth note
sharped flatted natural
12 वर्णों की टिप्पणी के बाद, छोड़ 2 * 12 - 12 = 12
पात्रों खाली (या तो या
-
लाइन पर निर्भर करता है) करता है, तो ध्यान दें एक चौथाई नोट है। यदि नोट आधा नोट है, तो 4 * 12 - 12 = 36
वर्ण खाली छोड़ दें । यदि नोट एक संपूर्ण नोट है, तो 8 * 12 - 12 = 84
वर्णों को खाली छोड़ दें । आठवें नोट के लिए अतिरिक्त वर्ण न जोड़ें।
प्रत्येक माप के अंत में (96 अक्षर या तो क्लेफ या बार लाइन के बाद), एक बार लाइन आउटपुट। यह ऊपरवाला और नीचे-सबसे लाइनों (समावेशी) के बीच हर चरित्र को नीचे जाकर, और साथ
|
और -
साथ प्रतिस्थापित करके किया जाता है +
। (प्रश्न के नीचे उदाहरण आउटपुट देखें)।
टुकड़े के अंत में, एक पंक्ति में 3 बार लाइनों को आउटपुट करके संगीत का अंत होता है, लेकिन पहले और दूसरे के बीच की जगह के साथ। अर्थात्:
+-++
| ||
+-++
| ||
. ..
. ..
ध्यान दें कि माप के अंत तक शार्प, फ़्लैट और नैचल्स टिके रहते हैं। प्राकृतिक चिन्ह का उपयोग केवल उसी माप में पहले उपयोग किए गए तेज या फ्लैट को रद्द करने के लिए किया जाना चाहिए।
इस कार्य के उद्देश्य से, शार्प, फ़्लैट और नैचल्स केवल एक सप्तक में एक नोट को प्रभावित करते हैं, और एक फांक में (A5 पर एक शार्प को A4 को तेज नहीं किया जाता है, और शीर्ष स्टाफ में C4 पर एक फ्लैट पैदा नहीं होता है) सी 4 नीचे के कर्मचारियों में चपटा होना)।
केवल बोनस के लिए जानकारी
बोनस में आठवें नोट को ठीक से जोड़ना शामिल है।
जब दो लगातार आठवें नोट होते हैं, तो क्वार्टर नोट बीट (दूसरे शब्दों में, पहले आठवें नोट से पहले वर्णों की संख्या 24 के एक से अधिक होती है) के साथ संरेखित किया जाता है, दो आठवें नोटों को जोड़ा जाना है।
नोट A कर्मचारियों के बीच से दूर का नोट है। यदि दोनों नोट बीच से समान दूरी पर हैं, तो दोनों नोट ए हो सकते हैं । दूसरे नोट को B नोट होने दें ।
की दिशा दोनों उपजी टिप्पणी के स्टेम की दिशा में होना चाहिए एक ।
नोटों में से एक का तना 6
लंबा होना चाहिए (जैसा कि सामान्य तौर पर तने के मामले में होता है), और दूसरे नोट के तने को दूसरे नोट के तने के अंत तक बढ़ाया जाना चाहिए।
उपजी के साथ जुड़ा होना चाहिए _
।
उदाहरण से जुड़े आठवें नोट:
___________
| |
| |
| |
| | --(@)--
| | | |
------------------------ ---|_----|-----------|-- -----|------------------
|/ (@) | | |_
------------------------ ---------------------|-- -----|--------|_|-(@)---
(@) _|_|_ | | ||
-----|------_|_|_-(@)--- ---------------------|-- -----|-----------|------
| | | | | | |
-----|-----------|------ ---------------------|-- -----|-----------|------
| | | | |
-----|-----------|------ ------------------(@)--- -----|___________|------
| |
|___________|
उदाहरण इनपुट और आउटपुट
इनपुट :
A#4/4 G#4/4 F#4/2 A#4/4 G#4/4 F#4/2 F#4/8 F#4/8 F#4/8 F#4/8 G#4/8 G#4/8 G#4/8 G#4/8 A#4/4 G#4/4 F#4/2
A#3/4 G#3/4 F#3/2 A#3/4 G#3/4 F#3/2 F#3/2 G#3/2 F#3/4 E#3/4 F#3/2
आउटपुट :
^
| | | | |
------|/-------------|-----------------------|--------------------------------------------------------------+---------|-----------------------|--------------------------------------------------------------+----------___________-------------___________------------|\----------|\----------|\----------|\-+---------|-----------------------|--------------------------------------------------------------+-++
/ | | | | | | | | | | | | | \ | \ | \ | \| | | | | ||
-----/|--------------|-----------------------|-----------------------|--------------------------------------+---------|-----------------------|-----------------------|--------------------------------------+---------|-----------|-----------|-----------|-----------|-----------|-----------|-----------|--+---------|-----------------------|-----------------------|--------------------------------------+-++
/ | | | | | | | | | | | | | | | | | | | | | | ||
---/--__----_|_|_----|-----------------------|-----------------------|--------------------------------------+_|_|_----|-----------------------|-----------------------|--------------------------------------+---------|-----------|-----------|-----------|-----------|-----------|-----------|-----------|--+_|_|_----|-----------------------|-----------------------|--------------------------------------+-++
| / \ _|_|_ (@) _|_|_ | | |_|_|_ (@) _|_|_ | | | | | | | _|_|_ | | | | |_|_|_ (@) _|_|_ | | | ||
---\-\|-|----|-|--------------------_|_|_-(@)---------------_|_|_----|--------------------------------------+-|-|--------------------_|_|_-(@)---------------_|_|_----|--------------------------------------+_|_|_----|-----------|-----------|-----------|--_|_|_-(@)---------(@)---------(@)---------(@)---+-|-|--------------------_|_|_-(@)---------------_|_|_----|--------------------------------------+-++
\ | / | | _|_|_ ( ) | | | _|_|_ ( ) |_|_|_ (@) (@) (@) (@) | | | | | _|_|_ ( ) | ||
------|------------------------------------------------------|-|--------------------------------------------+-------------------------------------------------|-|--------------------------------------------+-|-|--------------------------------------------------------------------------------------------+-------------------------------------------------|-|--------------------------------------------+-++
| | | | | ||
\_/ | | | | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
_|_|_ |_|_|_ | | | ||
----___-----_|_|_-(@)---------------_|_|_-------------------------------------------------------------------+_|_|_-(@)---------------_|_|_-------------------------------------------------------------------+------------------------------------------------_|_|_-------------------------------------------+------------------------------------------------------------------------------------------------+-++
/ \ | | | | _|_|_ (@) _|_|_ | | | | _|_|_ (@) _|_|_ |_|_|_ _|_|_ ( ) |_|_|_ | ||
---\---|---------|-------------------|-|-|------------------_|_|_-( )---------------------------------------+-----|-------------------|-|-|------------------_|_|_-( )---------------------------------------+_|_|_-( )----------------------------------------|-|-|------------------------------------------+_|_|_ (@)---------------_|_|_-------------------------( )---------------------------------------+-++
| | | | | | | | | | | | | | | | | | | | | | _|_|_ (@) | | ||
-------/---------|-----------------------|-----------------------|------------------------------------------+-----|-----------------------|-----------------------|------------------------------------------+-----|-----------------------------------------------|------------------------------------------+-----|-------------------|-|-|-----------------------|------------------------------------------+-++
/ | | | | | | | | | | | | | | | ||
-----/-----------|-----------------------|-----------------------|------------------------------------------+-----|-----------------------|-----------------------|------------------------------------------+-----|-----------------------------------------------|------------------------------------------+-----|-----------------------|-----------------------|------------------------------------------+-++
| | | | | | | | | | | | | ||
-----------------------------------------------------------------|------------------------------------------+-----------------------------------------------------|------------------------------------------+-----|------------------------------------------------------------------------------------------+-----|-----------------------|-----------------------|------------------------------------------+-++
|
प्रदर्शन के लिए, तीसरे उपाय में, F#
आठवें नोट जुड़े हुए हैं, जबकि G#
आठवें नोट नहीं हैं। आपके कार्यक्रम को या तो जब भी लागू हो (बोनस के लिए) आठवें नोटों को जोड़ना चाहिए, या उन सभी को छोड़ देना चाहिए।
अन्य सूचना
- व्हॉट्सएप / लाइनों की किसी भी राशि को स्वीकार्य है।
- फांक से पहले कोई अतिरिक्त व्हाट्सएप नहीं होना चाहिए, न ही नोटों के बीच व्हाट्सएप। आउटपुट से पहले / बाद में किसी भी खाली लाइनों को उत्सर्जित किया जा सकता है।
- आठवें नोट को जोड़ने के लिए बोनस स्रोत कोड के 0.75 * बाइट्स की संख्या है ।
- यह कोड-गोल्फ है , इसलिए सबसे छोटा कोड जीतता है।