आपका कार्य किसी दिए गए टेम्प्लेट को पूरा करके एक वैध करतब दिखाने के लिए है। लेकिन पहले, आपको शायद यह जानना होगा कि इस तरह के पैटर्न को कैसे दर्शाया जाता है।

Siteswap का परिचय
जगहें पैटर्न के लिए साइटवर्क स्थापित संकेतन है। यह पैटर्न को बीट्स में विभाजित करके काम करता है। प्रत्येक पर अपने बाएँ और दाएँ हाथ को एक गेंद फेंकने के लिए वैकल्पिक रूप से हराएं। प्रत्येक थ्रो (यानी प्रत्येक बीट) को एक संख्या से दर्शाया जाता है जो इंगित करता है कि जब गेंद को अगली बार फेंका जाता है - यह सीधे थ्रो की ऊंचाई से मेल खाती है।
आइए कुछ उदाहरण देखें। इन सभी के एनिमेशन यहाँ देखें ।
3-बॉल कैस्केड
सबसे सरल 3-गेंद पैटर्न। प्रत्येक गेंद को हर तीसरे बीट (बारी-बारी से हाथ) में फेंका जाता है। बीट्स को इस तरह से लिखना इस प्रकार है (ASCII लाइनें दो बीट्स को जोड़ती हैं, जिस पर एक ही गेंद फेंकी जाती है):
Beat 1 2 3 4 5 6 7 8 9
Hand L R L R L R L R L
Siteswap 3 3 3 3 3 3 3 3 3
└─┼─┼─┘ │ │
└─┼───┘ │
└─────┘
नोट कैसे एक पर फेंके गए हर गेंद Lकी धड़कन, एक पर अगले फेंक दिया जाता है Rbeat.Siteswap पैटर्न, परोक्ष दोहराने इसलिए इस पद्धति आमतौर पर के रूप में निरूपित किया जाता है 333, हालांकि बस 3भी पर्याप्त होगा।
441
यहाँ साइटों के साथ एक और अधिक जटिल उदाहरण 441 है :
Beat 1 2 3 4 5 6 7 8 9
Hand L R L R L R L R L
Siteswap 4 4 1 4 4 1 4 4 1
│ │ └─┘ │ │
└─┼─────┘ │
└───────┘
ध्यान दें कि कैसे समान संख्या वाले थ्रो उसी हाथ पर जाते हैं जहां से उन्हें फेंका गया था, जबकि विषम संख्या वाले थ्रो दूसरे हाथ में जाते हैं।
423
कभी-कभी आप केवल एक गेंद को फेंकने के बजाय बीट के माध्यम से पकड़ना चाहते हैं। इसका मतलब है कि यह गेंद अगली बार इस हाथ की बारी है - यानी 2 बीट्स बाद में फेंक दी जाती है। तो एक गेंद पर कब्ज़ा एक के बराबर है 2पैटर्न में:
Beat 1 2 3 4 5 6 7 8 9
Hand L R L R L R L R L
Siteswap 4 2 3 4 2 3 4 2 3
│ └─┼─┘ │ │
│ └───┼─┘
└───────┘
50,505
ए का 0मतलब है कि मौजूदा हाथ उस बीट पर खाली है, जैसा कि यह पैटर्न दिखाता है:
Beat 1 2 3 4 5 6 7 8 9
Hand L R L R L R L R L
Siteswap 5 0 5 0 5 5 0 5 0
└───┼───┼─┘ │
└───┼─────┘
└───────>
मल्टीप्लेक्स करतब दिखाने
यह समस्या हालांकि वेनिला साइटों के साथ थोड़ी सरल होगी। मल्टीप्लेक्स पैटर्न में प्रवेश करें! मल्टीप्लेक्स की जुगलबंदी का मतलब है कि आप एक ही समय में एक से कई गेंदें फेंकते हैं। उदाहरण के लिए, उपरोक्त 3-बॉल कैस्केड में, यदि आप हर तीसरे बीट पर एक अतिरिक्त गेंद फेंकते हैं, तो पैटर्न बन जाएगा [33]33और इस तरह दिखेगा:
Beat 1 2 3 4 5 6 7 8 9
Hand L R L R L R L R L
Siteswap [33] 3 3 [33] 3 3 [33] 3 3
└┴──┼─┼──┴┘ │ │
└─┼──────┘ │
└────────┘
यहां एक और उदाहरण है, जहां मल्टीप्लेक्स थ्रो में दो अलग-अलग ऊंचाई / लंबाई होती है। यह या तो के रूप में निरूपित किया जा सकता है [34]11या [43]11:
Beat 1 2 3 4 5 6 7 8 9
Hand L R L R L R L R L
Siteswap [43] 1 1 [43] 1 1 [43] 1 1
││ └─┴──┘│ │
│└────────┘ │
└────────────┘
(ध्यान दें कि 1बीट पर बीट 2भूमि पर फेंका गया 3और तुरंत फिर से (एक अन्य के रूप में 1) बीट पर लैंड करने के लिए 4और दूसरे मल्टीप्लेक्स थ्रो का हिस्सा बनने के लिए फेंक दिया जाता है।)
इस पोस्ट की शुरुआत में एनीमेशन के लिए siteswap था [53]15121 ।
पैटर्न वैधता
एक पैटर्न के लिए शब्द को वैध रूप से मान्य करने के लिए एक हाथ में गेंदों की संख्या को हमेशा उस बीट पर इंगित किए गए थ्रो की संख्या के अनुरूप होना चाहिए। इसका मतलब यह है कि, बीट में कोई भी गेंद नहीं होनी चाहिए 0, जिसमें किसी भी अन्य एकल अंक के साथ बीट पर केवल एक ही गेंद होनी चाहिए, और एक मल्टीप्लेक्स बीट में n गेंदें होनी चाहिए , जहां n अंकों की संख्या है उस मल्टीप्लेक्स थ्रो में। पैटर्न को भी मूल रूप से दोहराने में सक्षम होना चाहिए।
अमान्य पैटर्न के उदाहरण हैं 543(सभी गेंदें एक ही बीट पर उतरेंगी), 240( बीट 2पर लैंड करेंगी 0) या 33[24](मल्टीप्लेक्स बीट में नो बॉल लैंड, लेकिन दो बॉल अन्य दोनों बीट्स पर होंगी)।
चुनौती
आप एक साइट स्वरूप लेंगे, जिसमें वाइल्डकार्ड शामिल हैं और उन वाइल्डकार्डों को भरकर एक मान्य पैटर्न आउटपुट करना है।
इनपुट के रूप में (स्टड, कमांड-लाइन तर्क, फ़ाइल या फ़ंक्शन पैरामीटर के माध्यम से) प्रारूप की एक स्ट्रिंग लें
n s
कहाँ nएक पूर्णांक है जिसका उपयोग करने के लिए गेंदों की संख्या का संकेत मिलता है, और sएक साइट स्वरूप पैटर्न है ( बिना व्हाट्सएप के )। आप मान सकते हैं कि यह वाक्यात्मक रूप से सही है - सभी वर्ग कोष्ठक मेल खाते हैं और नेस्टेड नहीं हैं, और कोई अप्रत्याशित वर्ण नहीं हैं। सभी थ्रो सिंगल-डिजिट थ्रो ( 0- 9) होंगे। हालाँकि , कुछ बीट्स को केवल एक के रूप में दर्शाया जा सकता है _, जिसे आउटपुट में सिंगल या मल्टीप्लेक्स थ्रो से भरना होता है।
नोट: कुछ ऐसा है जो इनपुट का हिस्सा नहीं[_3] होगा । या तो पूरी बीट गायब है या पूरी बीट दी गई है।
एक मान्य पैटर्न आउटपुट करें, जिसे दी गई गेंदों की संख्या के साथ जोड़ दिया जा सकता है और सभी निर्दिष्ट बीट्स में इनपुट पैटर्न से सहमत हैं। यदि दिए गए इनपुट, आउटपुट के साथ कोई मान्य पैटर्न संभव नहीं है !। आउटपुट भी हो जाएगा stdout के माध्यम से, एक फाइल करने के लिए या एक समारोह वापसी मान के रूप में।
नोट: आउटपुट में मल्टीप्लेक्स थ्रो में अनावश्यक वर्ग ब्रैकेट या शून्य नहीं होना चाहिए। इसलिए आउटपुट युक्त [3]या [03]स्वीकार नहीं किए जाते हैं, आपको 3इसके बजाय आउटपुट करना होगा। मल्टीप्लेक्स थ्रो में अंकों का क्रम प्रासंगिक नहीं है।
नोट: आप ऐसे पैटर्न छोड़ सकते हैं जो चक्रीय क्रमपरिवर्तन के तहत डुप्लिकेट हैं। जैसे इनपुट के लिए 3 __(दो वाइल्डकार्ड पर ध्यान दें), दोनों 42और 24मान्य उत्तर हैं (दूसरों के बीच), लेकिन वे वास्तव में एक ही पैटर्न का वर्णन करते हैं। आप दोनों में से या सिर्फ एक को आउटपुट कर सकते हैं, लेकिन आपको इसे लगातार करना होगा।
यह कोड गोल्फ है , सबसे छोटा कोड जीत (प्रश्न के तल पर सूचीबद्ध बोनस के अधीन)।
यदि आप मान्य हैं और वे क्या दिखते हैं, यह देखने के लिए आप पैटर्न के साथ खेलने के लिए जुगलिंगलैब का उपयोग कर सकते हैं ।
उदाहरण
Input Possible Outputs Comments
3 _ 3
[21]
[111]
3 4_3 423
4 4_2 4[51]2
4[42]2
4[321]2
3 _23_ 6231
4233
323[31]
2235
223[41]
0237
023[43]
[42]231
[32]23[11]
4 5_3 ! 5 and 3 will both land at the third beat, but
there is only a single throw at that beat. This
cannot be fixed with any throw in the blank.
2 5_4 ! Any possible throw in the wildcard (including a
0) will make a pattern for at least 3 balls.
3 54_ ! The only solution that would correspond to a
3-ball pattern is 540, which is not semantically
valid because the 5 and 4 both land at beat 3.
There are valid solutions, but they require at
least 4 balls.
बोनस
- यदि आपका उत्तर 35 तक "अंक" को संभाल सकता है, तो अक्षरों द्वारा निरूपित (10 = ए, 11 = बी, ...), 20 वर्णों को घटाएं । आप यह तय कर सकते हैं कि क्या वे पत्र अपर-केस, लोअर-केस या केस-असंवेदनशील होने चाहिए। (यदि आप कुछ पागल पैटर्न को देखना चाहते हैं तो JugglingLab उन्हें लोअर-केस में संभाल सकते हैं।)
- यदि आपका जवाब आउटपुट तो सभी मान्य समाधान, घटाना 20 वर्ण ।