आपको एक समानांतर ब्रह्मांड में ले जाया जाता है जहां लोग कंप्यूटर पर गणितीय समीकरणों को ASCII कला के रूप में लिखते हैं। एक LaTeX व्यसनी के रूप में, यह पूरी तरह से अस्वीकार्य है, और आपको इस प्रक्रिया को कुछ हद तक स्वचालित करना चाहिए।
आपका लक्ष्य एक प्रोग्राम लिखना है जो कि एक LaTeX गणित कमांड के रूप में इनपुट समीकरण के ASCII संस्करण को आउटपुट करता है।
अनिवार्य LaTeX समर्थन करने का आदेश देता है
Sum: एक राशि के लिए LaTeX कमांड है
\sum_{lower bound}^{upper bound}
ASCII का आंकड़ा आपको रकम के लिए उपयोग करना है:
upper bound ___ \ ` /__, lower bound
उत्पाद: एक उत्पाद के लिए LaTeX कमांड है
\prod_{lower bound}^{upper bound}
उत्पादों के लिए आपके द्वारा उपयोग किया जाने वाला ASCII आंकड़ा है:
upper bound ____ | | | | lower bound
अंश: भिन्नों के लिए LaTeX कमांड है
\frac{numerator}{denominator}
भिन्नों के लिए आपको जो ASCII आंकड़ा उपयोग करना है वह है:
numerator ----------- denominator
कुछ भी जो उन तीन आदेशों में से एक नहीं है जैसा कि प्रदर्शित होता है। उदाहरण के लिए, के \sum{i=3}^{e^10}\frac{3x+5}{2}
रूप में प्रदर्शित किया जाना चाहिए
e^10
___ 3x+5
\ ` ----
/__, 2
i=3
इनपुट
इनपुट एक लाटेक्स कमांड है जिसे एक स्ट्रिंग (या आपकी भाषा के तार के बराबर) के रूप में पारित किया गया है। LaTeX कमांड को नेस्ट किया जा सकता है, उदाहरण के \frac{\frac{1}{2}}{3}
लिए एक वैध इनपुट है। इनपुट को हमेशा सही माना जाता है (आपके कोड में LaTeX के सिंटैक्स की जांच करने की आवश्यकता नहीं है)। इनपुट में केवल ऊपर दिए गए तीन LaTeX कमांड और 'टेक्स्ट' शामिल होंगे जिन्हें आपको प्रारूपित करने की आवश्यकता नहीं होगी।
LaTeX कमांड हमेशा ऊपर प्रस्तुत सिंटैक्स के साथ आएगा, अर्थात रकम और उत्पाद हमेशा ऊपरी और निचले सीमा होते हैं (हालांकि वे खाली हो सकते हैं) और अंशों के लिए हमेशा एक अंश और भाजक होगा।
हम मानते हैं कि रकम और उत्पादों की सीमाएं अधिकतम 4 वर्णों (= योग और उत्पाद प्रतीकों की चौड़ाई) पर हैं, ताकि आपको संभावित ओवरलैप मुद्दों के बारे में चिंता न करनी पड़े। इसी तरह के कारणों के लिए, हम मानते हैं कि सीमाएं केवल 'पाठ' हैं और कभी भी LaTeX कमांड नहीं होंगे, उदाहरण के \sum_{\sum_{1}^{2}}^{1}
लिए एक वैध इनपुट नहीं है।
आउटपुट
आपके प्रोग्राम का आउटपुट आपके द्वारा इनपुट के रूप में दिए गए LaTeX कमांड का ASCII प्रतिनिधित्व है।
आपके कार्यक्रम को क्षैतिज संरेखण को ध्यान में रखना है: उदाहरण के लिए, राशि या उत्पाद की सीमा क्षैतिज रूप से योग या उत्पाद चिह्न (जो दोनों 4 वर्ण चौड़े हैं) के साथ गठबंधन करना है। यदि बाध्य में विषम संख्या में वर्ण हैं, तो इससे कोई फर्क नहीं पड़ता कि यह केंद्र के दाईं ओर या बाईं ओर एक वर्ण है, जो भी ठीक है। अंश की रेखा को अंश या हर के रूप में लंबे समय तक होना है, जो भी सबसे लंबा है।
आपके कार्यक्रम को ऊर्ध्वाधर संरेखण को ध्यान में रखना होगा: उदाहरण के लिए, \frac{\frac{1}{2}}{3} = \frac{1}{6}
इसे प्रदर्शित किया जाना चाहिए
1
-
2 1
- = -
3 6
रकम और उत्पादों के लिए, चूंकि प्रतीक 4 वर्ण ऊंचे हैं, इसलिए ऊर्ध्वाधर केंद्र को शीर्ष से दूसरी पंक्ति माना जाता है।
क्षैतिज रिक्त स्थान को दिए गए इनपुट में सही माना जाता है, अर्थात इनपुट में रिक्त स्थान को आउटपुट में प्रदर्शित किया जाना चाहिए।
परीक्षण के मामलों
इनपुट
abc = 2
उत्पादन
abc = 2
इनपुट
e = \sum_{n=0}^{+inf} \frac{1}{n!}
उत्पादन
+inf ___ 1 e = \ ` -- /__, n! n=0
इनपुट
e^x = 1 + \frac{x}{1 - \frac{x}{2 + x - ...}}
उत्पादन
x e^x = 1 + --------------- x 1 - ----------- 2 + x - ...
इनपुट
\prod_{i=1}^{n} \frac{\sum_{j=0}^{m} 2j}{i + 1}
उत्पादन
m ___ \ ` 2j n /__, ____ j=0 | | ------- | | i + 1 i=1
इनपुट
\frac{sum}{prod} = \sum_{frac}^{prod} sum
उत्पादन
prod sum ___ ---- = \ ` sum prod /__, frac
स्कोरिंग
यह कोड-गोल्फ है , इसलिए सबसे छोटा कोड जीतता है।