पृष्ठभूमि की कहानी
आप एक रसायन विज्ञान प्रयोगशाला में चक्कर जगाते हैं, और आपको लगता है कि आपको एक पुराने पागल रसायनज्ञ द्वारा अपहरण कर लिया गया है। चूंकि वह अपनी उम्र के कारण बहुत अच्छी तरह से नहीं देख सकता है, वह चाहता है कि आप उसके लिए काम करें और उसके बाद ही आप प्रयोगशाला से बच सकते हैं।
कार्य
अणुओं के संरचनात्मक सूत्रों को वापस करना आपका काम है जिसका रासायनिक सूत्र इनपुट के रूप में दिया जाएगा। ध्यान दें कि इनपुट के रूप में केवल कार्बन ( C
), ऑक्सीजन ( O
) और हाइड्रोजन ( H
) परमाणुओं का उपयोग किया जाएगा। रासायनिक सूत्रों के विपरीत, 0
यह एक मान्य परिमाणक है और 1
छोड़ा नहीं जा सकता (जैसे C1H4O0
वैध इनपुट है, लेकिन CH4
ऐसा नहीं है)।
अस्पष्टता को रोकने के लिए, हम मान लेते हैं कि डबल और ट्रिपल बांड अणुओं में दिखाई नहीं देते हैं। सभी कार्बन परमाणुओं को 4 एकल बांडों की आवश्यकता होती है, सभी ऑक्सीजन परमाणुओं को 2 की आवश्यकता होती है, और हाइड्रोजन परमाणुओं को एक की आवश्यकता होती है। हम यह भी मानते हैं कि O-O
बांड भी मौजूद नहीं हैं। अणु का न तो अस्तित्व है और न ही स्थिर होना।
3
आउटपुट के डिस्प्ले में हल्कापन सुनिश्चित करने के लिए इनपुट में कार्बन परमाणुओं से अधिक नहीं होगा ।
आपको केवल उन अणुओं को प्रदर्शित करना चाहिए जिनके कार्बन परमाणुओं को बिना किसी रुकावट के एक सीधी रेखा में व्यवस्थित किया जाता है। अहंकार, कोई C-O-C
बंधन नहीं ।
आपको पिछले नियमों से बाहर नहीं किए गए सभी संभावित अणुओं को वापस करना होगा । आपको अमान्य इनपुट को संभालने की आवश्यकता नहीं है।
निम्नलिखित उदाहरण उन अणु के लिए आपके द्वारा प्रबंधित किए जाने वाले सभी समाधानों को प्रदर्शित करता है।
अणु के किसी एक सूत्र के पृष्ठ के तल में 180 डिग्री घूमने को अतिरेक माना जाता है और इसे प्रदर्शित करने की आवश्यकता नहीं होती है।
नीचे दिए गए उदाहरण में, मैं एक अणु के लिए सभी संभावित सूत्र दिखाऊंगा, फिर उन लोगों को इंगित करूँगा जिन्हें प्रदर्शित करने की आवश्यकता नहीं है।
उदाहरण
इनपुट: C2H6O2
सबसे पहले, इस इनपुट के लिए सभी संभावित सूत्र दिए गए हैं (@Jonathan Allan के लिए धन्यवाद)
01 H
|
O H
| |
H - O - C - C - H
| |
H H
02 H
|
H O
| |
H - O - C - C - H
| |
H H
03 H H
| |
H - O - C - C - O - H
| |
H H
04 H H
| |
H - O - C - C - H
| |
H O
|
H
05 H H
| |
H - O - C - C - H
| |
O H
|
H
12 H H
| |
O O
| |
H - C - C - H
| |
H H
13 H
|
O H
| |
H - C - C - O - H
| |
H H
14 H
|
O H
| |
H - C - C - H
| |
H O
|
H
15 H
|
O H
| |
H - C - C - H
| |
O H
|
H
23 H
|
H O
| |
H - C - C - O - H
| |
H H
24 H
|
H O
| |
H - C - C - H
| |
H O
|
H
25 H
|
H O
| |
H - C - C - H
| |
O H
|
H
34 H H
| |
H - C - C - O - H
| |
H O
|
H
35 H H
| |
H - C - C - O - H
| |
O H
|
H
45 H H
| |
H - C - C - H
| |
O O
| |
H H
और यहां सूत्र हैं जो आउटपुट में होने चाहिए यदि हम पृष्ठ के विमान में 180 ° के घुमाव को बाहर निकालते हैं:
01 H
|
O H
| |
H - O - C - C - H
| |
H H
03 H H
| |
H - O - C - C - O - H
| |
H H
12 H H
| |
O O
| |
H - C - C - H
| |
H H
13 H
|
O H
| |
H - C - C - O - H
| |
H H
14 H
|
O H
| |
H - C - C - H
| |
H O
|
H
15 H
|
O H
| |
H - C - C - H
| |
O H
|
H
23 H
|
H O
| |
H - C - C - O - H
| |
H H
25 H
|
H O
| |
H - C - C - H
| |
O H
|
H
35 H H
| |
H - C - C - O - H
| |
O H
|
H
आपको सूत्रों के लेबल को आउटपुट करने की आवश्यकता नहीं है और दो के मौजूद होने पर आप दोनों में से किसी भी घुमाव को आउटपुट कर सकते हैं। उदाहरण के लिए आप 02 या 35 आउटपुट कर सकते हैं।
आपके कोड का परीक्षण करने के लिए यहां कुछ मान्य इनपुट दिए गए हैं:
C3H8O2 C1H4O0 C2H6O2 C1H4O1 C2H6O2
आपके काम को पूरा करने के लिए आपको जो केमिस्ट पीसी ने दिया है वह काफी पुराना है इसलिए आपके पास अपने कोड को सेव करने के लिए इस पर बहुत मेमोरी नहीं है, इस प्रकार यह कोड-गोल्फ है और कम से कम बाइट जीतता है!