यदि आपके पास कभी भी जापानी या पूर्वी एशियाई संस्कृति के लिए कोई जोखिम था, तो आप निश्चित रूप से अमिदाकुजी खेल का सामना करेंगे:
जैसा कि विकिपीडिया बताते हैं , यह एक प्रकार की लॉटरी है जिसे कागज पर खींचा जाता है और इसका उपयोग बेतरतीब ढंग से एन वस्तुओं के क्रमांकन का चयन करने के लिए किया जाता है।
उदाहरण के लिए, इसका उपयोग बेतरतीब ढंग से एन लोगों को शुरुआती अनुक्रम सौंपने के लिए किया जा सकता है, या एन लोगों को एन पुरस्कार, और इसी तरह।
यह समझने की चाल कि खेल एक क्रमचय का प्रतिनिधित्व क्यों करता है, यह महसूस करने के लिए कि प्रत्येक क्षैतिज स्ट्रोक (जिसे "पैर" कहा जाता है) अपनी दो वस्तुओं को जगह पर स्वैप कर देता है।
वही विकिपीडिया पृष्ठ यह भी बताता है कि N वस्तुओं के प्रत्येक क्रमपरिवर्तन P, अमिदाकुजी आरेखों की अनंत संख्या से मेल खाते हैं। क्षैतिज स्ट्रोक (पैरों) की कम से कम संख्या वाले एक को उस विशेष क्रमपरिवर्तन पी के "प्राइम्स" कहा जाता है।
आपका कार्य इस प्रारूप में 2 या अधिक ऊर्ध्वाधर लाइनों (इस उदाहरण में वे 6 हैं) के साथ एक Amidakuji आरेख प्राप्त करना है:
A B C D E F
| | | | | |
|-| |-| |-|
| |-| |-| |
| | | | |-|
| |-| |-| |
| | |-| |-|
| | |-| | |
|-| | |-| |
|-| |-| | |
| |-| | |-|
| | | | | |
B C A D F E
और इसके एक प्राइम का निर्माण करें (फिर से, अक्षरों को घटाएं):
A B C D E F
| | | | | |
|-| | | |-|
| |-| | | |
| | | | | |
B C A D F E
अक्षरों के साथ पहली और आखिरी लाइनें प्रारूप का हिस्सा नहीं हैं । मैंने उन्हें क्रमोन्नति दिखाने के लिए यहाँ जोड़ा है। यह भी आवश्यक नहीं है कि पहली या अंतिम पंक्तियों में कोई पैर न हो |-|
, न ही यह कि आउटपुट जितना संभव हो उतना कॉम्पैक्ट हो।
यह विशेष इनपुट उदाहरण विकिपीडिया पृष्ठ के शीर्ष पर Amidakuji आरेख के (अनंत) ASCII अभ्यावेदन में से एक है।
इन ASCII आरेखों के बारे में एक गैर-स्पष्ट नियम है: आसन्न पैर निषिद्ध हैं।
|-|-| <- NO, this does not represent a single swap!
विकिपीडिया एक आरेख से प्राइम प्राप्त करने के लिए एक मानक प्रक्रिया की व्याख्या करता है, जिसे "बब्बलाइजेशन" कहा जाता है, जिसमें निम्नलिखित सरलीकरणों को लागू करना शामिल है:
1) दाएं कांटे को बाएं कांटा:
| |-| |-| |
|-| | -> | |-|
| |-| |-| |
2) डबल्स को खत्म करना:
|-| | |
|-| -> | |
मुझे यकीन नहीं है कि यह स्पष्टीकरण स्पष्ट नहीं है। आपका कोड उस तकनीक या किसी अन्य एल्गोरिथ्म का उपयोग कर सकता है जो आवश्यक primes उत्पन्न करता है।
सबसे छोटा कोड जीतता है।
मानक नियम और मानक भत्ते लागू होते हैं। (यदि इनपुट मान्य नहीं है, तो आपका प्रोग्राम आग पकड़ सकता है। इनपुट / आउटपुट प्रारूप स्टड / स्टडआउट, स्ट्रिंग तर्क, लाइनों की सूची, वर्णों की मैट्रिक्स, जो भी आपके लिए सबसे अच्छा काम करता है, आदि हो सकते हैं)