बेरंड एक हाई स्कूल के छात्र हैं, जिन्हें रसायन विज्ञान में कुछ समस्याएं हैं। कक्षा में उन्हें कुछ प्रयोगों के लिए रासायनिक समीकरणों को डिजाइन करना पड़ता है, जो वे कर रहे हैं, जैसे कि हेप्टेन का दहन:
C 7 H 16 + 11O 2 → 7CO 2 + 8H 2 O
चूंकि गणित वास्तव में बर्नड का सबसे मजबूत विषय नहीं है, इसलिए अक्सर उसके पास प्रतिक्रिया के समर्थक और उतार-चढ़ाव के बीच सटीक अनुपात खोजने का कठिन समय होता है। चूंकि आप बर्नड के ट्यूटर हैं, इसलिए उसकी मदद करना आपका काम है! एक प्रोग्राम लिखें, जो एक वैध रासायनिक समीकरण प्राप्त करने के लिए आवश्यक प्रत्येक पदार्थ की मात्रा की गणना करता है।
इनपुट
इनपुट बिना मात्रा के एक रासायनिक समीकरण है। शुद्ध ASCII में इसे संभव बनाने के लिए, हम किसी भी सदस्यता को साधारण संख्या के रूप में लिखते हैं। तत्व नाम हमेशा एक कैपिटल लेटर से शुरू होते हैं और एक माइनसकूल के बाद हो सकते हैं। अणुओं को +
संकेतों के साथ अलग किया ->
जाता है, समीकरण के दोनों किनारों के बीच एक ASCII- कला तीर डाला जाता है:
Al+Fe2O4->Fe+Al2O3
इनपुट को एक नई पंक्ति के साथ समाप्त किया गया है और इसमें कोई स्थान नहीं होगा। यदि इनपुट अमान्य है, तो आपका प्रोग्राम जो चाहें उसे कर सकता है।
आप मान सकते हैं, कि इनपुट 1024 वर्णों से अधिक लंबा नहीं है। आपका प्रोग्राम या तो मानक इनपुट से इनपुट पढ़ सकता है, पहले तर्क से या फिर रनटाइम में कार्यान्वयन परिभाषित तरीके से यदि न तो संभव है।
उत्पादन
आपके प्रोग्राम का आउटपुट अतिरिक्त संख्याओं के साथ संवर्धित इनपुट समीकरण है। प्रत्येक तत्व के लिए परमाणुओं की संख्या तीर के दोनों किनारों पर समान होनी चाहिए। उपरोक्त उदाहरण के लिए, एक मान्य आउटपुट है:
2Al+Fe2O3->2Fe+Al2O3
यदि किसी अणु की संख्या 1 है, तो उसे छोड़ दें। एक नंबर हमेशा एक धनात्मक पूर्णांक होना चाहिए। आपके प्रोग्राम को संख्याएँ ऐसी होनी चाहिए कि उनका योग न्यूनतम हो। उदाहरण के लिए, निम्नलिखित अवैध है:
40Al+20Fe2O3->40Fe+20Al2O3
अगर कोई हल नहीं है, तो प्रिंट करें
Nope!
बजाय। एक नमूना इनपुट जिसका कोई समाधान नहीं है
Pb->Au
नियम
- यह कोड-गोल्फ है। सबसे छोटा कोड जीतता है।
- आपका कार्यक्रम सभी उचित इनपुट के लिए उचित समय में समाप्त होना चाहिए।
परीक्षण के मामलों
प्रत्येक परीक्षण मामले में दो लाइनें होती हैं: एक इनपुट और एक सही आउटपुट।
C7H16+O2->CO2+H2O
C7H16+11O2->7CO2+8H2O
Al+Fe2O3->Fe+Al2O3
2Al+Fe2O3->2Fe+Al2O3
Pb->Au
Nope!
solve(
फ़ंक्शन का उपयोग करके और eval(
इनपुट की व्याख्या करने के लिए :)