टोपोलॉजिकल सतहों का प्रतिनिधित्व करने का एक सुविधाजनक और उपयोगी तरीका एक मौलिक बहुभुज के साथ है । बहुभुज पर प्रत्येक पक्ष दूसरे पक्ष से मेल खाता है और समानांतर या विरोधी समानांतर हो सकता है। उदाहरण के लिए यहाँ एक धार का मूल बहुभुज है :
यह पता लगाने के लिए कि यह एक टोरस है जिससे हम कल्पना कर सकते हैं कि हमारा बहुभुज कागज की एक शीट है। उचित सतह बनाने के लिए हम अपने कागज को मोड़ना चाहते हैं ताकि संबंधित किनारों को अपने तीर के साथ उसी तरह से रेखाबद्ध किया जा सके। हमारे टोरस उदाहरण के लिए हम पेपर को एक सिलेंडर में रोल करके शुरू कर सकते हैं ताकि दो नीले किनारे (लेबल वाले बी) जुड़े हों। अब हम अपनी ट्यूब लेते हैं और इसे मोड़ते हैं ताकि दो लाल किनारों (लेबल वाले) एक दूसरे से कनेक्ट हो जाएं। हमारे पास एक डोनट आकार होना चाहिए, जिसे टोरस भी कहा जाता है।
यह थोड़ा पेचीदा हो सकता है। यदि आप निम्नलिखित बहुभुज के साथ ऐसा करने की कोशिश करते हैं जहां किनारों में से एक विपरीत दिशा में जा रहा है:
आप खुद को किसी परेशानी में पा सकते हैं। ऐसा इसलिए है क्योंकि यह बहुभुज क्लेन बोतल का प्रतिनिधित्व करता है जिसे तीन आयामों में एम्बेड नहीं किया जा सकता है। यहां विकिपीडिया से एक आरेख दिखाया गया है कि आप इस बहुभुज को एक क्लेन बोतल में कैसे मोड़ सकते हैं:
जैसा कि आपने अनुमान लगाया होगा कि यहां कार्य एक मूल बहुभुज लेना है और यह निर्धारित करना है कि यह किस सतह पर है। चार पक्षीय बहुभुजों के लिए (केवल सतहों को आपको संभालना आवश्यक होगा) 4 अलग-अलग सतहें हैं।
वो हैं
टोरस्र्स
क्लेन बोतल
क्षेत्र
प्रक्षेप्य तल
अब यह इमेज प्रोसेसिंग नहीं है, इसलिए मैं आपसे इनपुट के रूप में इमेज लेने की उम्मीद नहीं करता हूं, इसके बजाय हम मूल बहुभुज का प्रतिनिधित्व करने के लिए एक सुविधाजनक नोटेशन का उपयोग करेंगे। आपने ऊपर दिए दो उदाहरणों में देखा होगा कि मैंने एक ही अक्षर (या तो या बी) के साथ संबंधित किनारों को नाम दिया है, और मैंने मुड़ को दिखाने के लिए अतिरिक्त किनारे को एक अतिरिक्त चिह्न दिया है। यदि हम ऊपरी किनारे पर शुरू करते हैं और प्रत्येक किनारे के लिए लेबल लिखते हैं क्योंकि हम दक्षिणावर्त जाते हैं तो हम एक अंकन प्राप्त कर सकते हैं जो प्रत्येक मौलिक बहुभुज का प्रतिनिधित्व करता है।
उदाहरण के लिए प्रदान की गई टोरस अबाब बन जाएगी और क्लेन बोतल एब - एबी बन जाएगी । हमारी चुनौती के लिए हम इसे और भी सरल बना देंगे, एक नकारात्मक के साथ मुड़ किनारों को चिह्नित करने के बजाय हम उन अक्षरों को पूंजीकृत करेंगे।
कार्य
एक स्ट्रिंग को देखते हुए अगर यह एक मूल बहुभुज का प्रतिनिधित्व करता है और एक मूल्य का उत्पादन करता है जो इसकी उचित सतह के अनुरूप है। आपको सतहों को वास्तव में नाम देने की आवश्यकता नहीं है, आपको बस 4 आउटपुट अलग-अलग मानों की आवश्यकता है प्रत्येक 4 सतहों में से एक को पांचवें इनपुट के साथ अनुचित इनपुट का प्रतिनिधित्व करता है। सभी मूल मामले सरल टेस्ट अनुभाग में शामिल किए गए हैं , प्रत्येक कार एक या अमान्य में से आइसोमॉर्फिक होगी।
नियम
पक्षों को हमेशा ए और बी के साथ लेबल नहीं किया जाएगा, लेकिन उन्हें हमेशा अक्षरों के साथ लेबल किया जाएगा।
वैध इनपुट में 4 अक्षर होंगे, एक प्रकार के दो और दूसरे के दो। आपको हमेशा मान्य इनपुट के लिए सही सतह का उत्पादन करना चाहिए।
आपको अस्वीकार करना चाहिए (सतहों का प्रतिनिधित्व करने वाले 4 मानों में से कोई भी आउटपुट नहीं) अमान्य इनपुट। इनपुट को खारिज करते समय आप कुछ भी कर सकते हैं, जब तक कि यह 4 सतहों से अलग हो
यह कोड-गोल्फ है इसलिए लक्ष्य आपके स्रोत कोड में बाइट्स की संख्या को कम करना है।
टेस्ट
सरल टेस्ट
abab Torus
abAb Klein Bottle
abaB Klein Bottle
abAB Projective Plane
aabb Klein Bottle
aAbb Projective Plane
aabB Projective Plane
aAbB Sphere
abba Klein Bottle
abBa Projective Plane
abbA Projective Plane
abBA Sphere
ट्रिकियर टेस्ट
ABAB Torus
acAc Klein Bottle
Emme Projective Plane
zxXZ Sphere
aaab Bad input
abca Bad input
abbaa Bad input
ab1a Bad input
abab
पहले पैराग्राफ में उदाहरण है, आप स्पष्टीकरण के लिए वहां देख सकते हैं। यहाँ एक चित्र दिखा रहा है कि क्यों aabb
वही है abAb
जो क्लेन बोतल है।
abab
एक टोरस औरaabb
क्लेन बोतल क्यों है ?