बल्गेरियाई सॉलिटेयर एक एकल-खिलाड़ी खेल है जिसे मार्टिन गार्डनर ने वैज्ञानिक अमेरिकी में अपने गणितीय कॉलम में लोकप्रिय बनाया है ।
आपके पास Nसमान कार्ड हैं, बवासीर में विभाजित हैं। आप प्रत्येक ढेर से एक कार्ड लेते हैं और हटाए गए कार्ड के साथ एक नया ढेर बनाते हैं। आप इस प्रक्रिया को तब तक दोहराते हैं जब तक कि आप एक ऐसी स्थिति तक नहीं पहुंच जाते जो आपने पहले ही देख ली है और इसलिए लगातार लूप को दोहराते रहेंगे।
उदाहरण के लिए, मान लें कि आपके पास 8कार्ड हैं, के ढेर 5और के ढेर में विभाजित हैं 3। हम ढेर के आकार को अवरोही क्रम में लिखते हैं 5 3:। यहाँ खेल का एक प्रतिलेख है:
5 3
4 2 2
3 3 1 1
4 2 2
आप पहले दो ढेर में से प्रत्येक से एक कार्ड निकालने के लिए, के ढेर छोड़ने 4और 2, और की एक नव निर्मित ढेर 2, दे रही है 4 2 2। अगले चरण में, 3 1 1नए ढेर के साथ इनका पालन किया जाता है 3। अंत में, अंतिम चरण आकार के ढेर को खाली 1करता है और उत्पादन करता है 4 2 2जो पहले से ही दिखाई दिया है, इसलिए हम रोकते हैं।
ध्यान दें कि ढेर-आकारों का योग समान रहता है।
आपका लक्ष्य दिए गए शुरुआती कॉन्फ़िगरेशन से गेम के ऐसे ट्रांसक्रिप्ट को प्रिंट करना है। यह कोड गोल्फ है, इसलिए सबसे कम बाइट जीतती है।
इनपुट
शुरुआती ढेर के आकारों का प्रतिनिधित्व करते हुए अवरोही क्रम में सकारात्मक संख्याओं की एक सूची। STDIN या फ़ंक्शन इनपुट के माध्यम से इनपुट लें। आप किसी भी सूची जैसी संरचना का उपयोग कर सकते हैं।
आपको Nइनपुट के रूप में कुल कार्ड नहीं मिलते हैं ।
उत्पादन
ढेर के आकार के क्रम को प्रिंट करें बल्गेरियाई त्यागी का खेल। ध्यान दें कि मुद्रण की आवश्यकता है, वापस नहीं। प्रत्येक चरण की अपनी रेखा होनी चाहिए।
प्रत्येक पंक्ति में बिना किसी क्रम के सकारात्मक क्रम का क्रम होना चाहिए 0। आपके पास विभाजक हो सकते हैं और टोकन शुरू कर सकते हैं (उदाहरण के लिए, [3, 3, 1, 1])। संख्या में कई अंक हो सकते हैं, इसलिए उन्हें किसी तरह अलग किया जाना चाहिए।
पाइल-साइज़ स्प्लिट्स को तब तक प्रिंट करें जब तक आप एक रिपीट तक पहुँचने और शामिल होने तक नहीं देखते हैं। तो, पहली पंक्ति इनपुट होनी चाहिए, और अंतिम पंक्ति पिछली पंक्ति की पुनरावृत्ति होनी चाहिए। कोई अन्य दोहराव नहीं होना चाहिए।
परीक्षण के मामलों
>> [1]
1
1
>> [2]
2
1 1
2
>> [1, 1, 1, 1, 1, 1, 1]
1 1 1 1 1 1 1
7
6 1
5 2
4 2 1
3 3 1
3 2 2
3 2 1 1
4 2 1
>> [5, 3]
5 3
4 2 2
3 3 1 1
4 2 2
>> [3, 2, 1]
3 2 1
3 2 1
>> [4, 4, 3, 2, 1]
4 4 3 2 1
5 3 3 2 1
5 4 2 2 1
5 4 3 1 1
5 4 3 2
4 4 3 2 1
v$input()$साथ बदल सकते हैंQ। 2. यदि आप सूची को घटते क्रम में संग्रहीत करते हैं, तो आपको इसकी आवश्यकता नहीं हैN:W!}QYQ~Y]Q=Q_S+fTmtdQ]lQ;Q