मेरे पास एक क्रैंक-संचालित संगीत बॉक्स है जो चार नोटों की एक श्रृंखला खेल सकता है। जब मैं क्रैंक को चालू करता हूं, तो यह क्रैंक की स्थिति और मोड़ की दिशा के आधार पर, चार तारों में से एक को प्लक करता है। जब क्रैंक को उत्तर की ओर मोड़ दिया जाता है, तो बॉक्स (इसके तार 4 के माध्यम से गिने जाते हैं) इस तरह दिखता है:
1 | 2
|
O
4 3
वहाँ से, मैं क्रैंक क्लॉकवाइज़ को # 2 स्ट्रिंग प्लक कर सकता हूँ और क्रैंक ईस्ट को इंगित कर सकता हूँ:
1 2
O---
4 3
वैकल्पिक रूप से, मैं # 1 स्ट्रिंग खेलने के लिए उत्तर से क्रैंक वामावर्त भी मुड़ सकता था और क्रैंकिंग पश्चिम के साथ समाप्त हो सकता है:
1 2
---O
4 3
किसी भी समय, फिर, बॉक्स दो में से एक नोट खेल सकता है: अगला नोट क्लॉकवाइज दिशा में उपलब्ध है या काउंटरक्लॉकवाइज दिशा में अगला नोट।
चुनौती
आपकी चुनौती एक प्रोग्राम या फ़ंक्शन लिखना है जो नोट मानों के एक गैर-रिक्त स्ट्रिंग को स्वीकार करता है (यानी, अंकों के 1
माध्यम से 4
) और यह निर्धारित करता है कि क्या संगीत बॉक्स पर नोट्स के उस क्रम को खेलना कभी संभव है। इनपुट की प्लेबिलिटी या गैर-प्लेबिलिटी को इंगित करने के लिए एक सत्य या मिथ्या परिणाम उत्पन्न करें।
कुछ नोट:
इनपुट आरंभिक स्थिति के बारे में कोई धारणा नहीं बनाता है। इनपुट्स
214
(पूर्व की ओर और सख्ती से वामावर्त की ओर बढ़ते हुए) और234
(उत्तर की ओर से और कड़ाई से दक्षिणावर्त घूमते हुए) और दोनों वैध।क्रैंक प्रत्येक नोट के बाद किसी भी दिशा में स्वतंत्र रूप से आगे बढ़ सकता है। एक ही नोट के
33333
आगे और पीछे एक स्ट्रिंग द्वारा एक ही नोट की एक श्रृंखला संभव है (जैसे )। श्रृंखला1221441
पूरी तरह से खेलने योग्य है (पश्चिम से शुरू होकर, दक्षिणावर्त दो कदम, फिर वामावर्त तीन चरण, फिर दक्षिणावर्त दो चरण)।
नमूने
कुछ true
मामले:
1
1234
1221
3333
143332
22234
2234
22214
1221441
41233
कुछ false
मामले:
13 (note 3 is never available after note 1)
1224 (after `122`, the crank must be north, so 4 is not playable)
121 (after `12` the crank is east; 1 is not playable)
12221 (as above, after `1222` the crank is east)
43221