पृष्ठभूमि
एलिस और बॉब एक गेम खेलते हैं जिसे बाइनरी वर्ड का निर्माण कहा जाता है । खेल खेलने के लिए, आप एक लंबाई को ठीक n >= 0, एक सेट Glength- के nद्विआधारी बुलाया शब्द लक्ष्य सेट , और एक length- nस्ट्रिंग tपत्र युक्त Aऔर Bकहा जाता है, बारी आदेश । खेल के लिए रहता हैn बारी के है, और बदले में i, खिलाड़ी द्वारा t[i]चयनित थोड़ा सा परिभाषित करता है w[i]। जब खेल खत्म हो जाता है, तो खिलाड़ी अपने wद्वारा बनाए गए द्विआधारी शब्द को देखते हैं। यदि यह शब्द गोल सेट में पाया जाता है G, तो ऐलिस गेम जीतता है; अन्यथा, बॉब जीतता है।
उदाहरण के लिए, ठीक करते हैं n = 4, G = [0001,1011,0010], और t = AABA। ऐलिस को पहली बारी मिलती है, और वह चुनती है w[0] = 0। दूसरी बारी भी एलिस की है, और वह चुनती है w[1] = 0। बॉब की तीसरी बारी है, और वह चुनता है w[2] = 0। अंतिम मोड़ पर, ऐलिस चुनता है w[3] = 1। परिणामी शब्द, 0001में पाया जाता है G, इसलिए ऐलिस खेल जीतता है।
अब, अगर बॉब ने चुना होता w[2] = 1, तो ऐलिस w[3] = 0अपनी अंतिम पारी में चुन सकती थी , और फिर भी जीत सकती थी। इसका मतलब यह है कि ऐलिस खेल को जीत सकता है चाहे बॉब कैसे भी खेलता हो। इस स्थिति में, ऐलिस एक है जीत की रणनीति है । इस रणनीति को एक लेबल बाइनरी ट्री के रूप में देखा जा सकता है, जो बॉब के घुमावों के अनुरूप स्तरों पर शाखाएं हैं, और जिनकी प्रत्येक शाखा में एक शब्द है G:
A A B A
-0-0-0-1
\
1-0
ऐलिस बस अपनी बारी पर शाखाओं का पालन करके खेलती है; कोई फर्क नहीं पड़ता कि कौन सी शाखा बॉब चुनती है, एलिस अंततः जीत जाती है।
इनपुट
आपको इनपुट लंबाई के रूप में दिया जाता है n , औरG के तारों की एक (संभवतः खाली) सूची के रूप में सेट किया गया है n।
उत्पादन
आपका आउटपुट टर्न ऑर्डर की सूची है, जिसके लिए ऐलिस की जीतने की रणनीति है, जो ऊपर वर्णित बाइनरी ट्री के अस्तित्व के बराबर है। टर्न ऑर्डर का क्रम मायने नहीं रखता है, लेकिन डुप्लिकेट निषिद्ध हैं।
विस्तृत नियम
आप एक पूर्ण कार्यक्रम या एक फ़ंक्शन लिख सकते हैं। एक कार्यक्रम के मामले में, आप इनपुट और आउटपुट के लिए सीमांकक चुन सकते हैं, लेकिन यह दोनों के लिए समान होना चाहिए। सबसे छोटी बाइट गिनती जीतती है, और मानक खामियों को रोक दिया जाता है।
परीक्षण के मामलों
3 [] -> []
3 [000,001,010,011,100,101,110,111] -> [AAA,AAB,ABA,ABB,BAA,BAB,BBA,BBB]
4 [0001,1011,0010] -> [AAAA,BAAA,AABA]
4 [0001,1011,0010,0110,1111,0000] -> [AAAA,BAAA,ABAA,BBAA,AABA,AAAB]
5 [00011,00110,00111,11110,00001,11101,10101,01010,00010] -> [AAAAA,BAAAA,ABAAA,BBAAA,AABAA,AAABA,BAABA,AAAAB,AABAB]
मजेदार तथ्य
आउटपुट में टर्न ऑर्डर की संख्या हमेशा लक्ष्य सेट में शब्दों की संख्या के बराबर होती है।
11101दो बार; मजेदार तथ्य अभी भी सेट के लिए है। Zgarb, इनपुट में बार-बार तत्व हो सकते हैं, या यह एक त्रुटि थी?