अस्वीकरण: जबकि मैं थोड़ी देर के लिए मनोरंजन प्रयोजनों के लिए इस साइट पर रहा हूं, यह मेरा पहला प्रश्न है, इसलिए कृपया किसी भी छोटी सी गलती को माफ कर दें।
पृष्ठभूमि
जब हमें होमवर्क सौंपा जाता है, तो मेरा शिक्षक वास्तव में परेशान होता है और वह सभी समस्याएं लिखता है जो हमें व्यक्तिगत रूप से करनी पड़ती हैं। जैसे, मुझे हमेशा के लिए कॉपी करना पड़ता है कि मुझे कौन सी समस्याएँ हैं। मैंने सोचा था कि अपने जीवन को आसान बनाने के लिए, मैं उसे एक ऐसा कार्यक्रम भेजूंगा जो समस्याओं की सूची को कम जगह बना सके।
पृष्ठ या समस्या संख्याओं की सूची लिखते समय, हम किसी श्रेणी को निरूपित करने के लिए डैश का उपयोग करते हैं। उदाहरण के लिए, 19-21
बन जाता है 19, 20, 21
। यदि बीच में कोई गैप है, तो दो अल्पविराम द्वारा अलग-अलग श्रेणियों का उपयोग किया जाता है: 19-21, 27-31
बन जाता है 19, 20, 21, 27, 28, 29, 30, 31
।
अभी के बारे में, आप शायद सोच रहे हैं: "यह बहुत तुच्छ लगता है"। वास्तव में, यह पहले से ही यहां और यहां उत्तर दिया गया है ।
हालांकि, वहाँ एक पकड़ है। अगर हमारे पास एक समान लगातार अंकों के साथ सीमा है, तो दोहराया अंकों को छोड़ा जा सकता है। उदाहरण के लिए: 15, 16, 17
बन जाता है 15-7
, और 107, 108, 109
बन जाता है 107-9
। एक बोनस के लिए, यदि अंतिम लगातार बराबर अंक 1 से अधिक है और ऊपरी सीमा का अंतिम अंक निम्न के बराबर या उससे कम है, तो निम्नलिखित को छोड़ा जा सकता है (क्षमा करें यदि यह भ्रमित लग रहा है, तो शायद कुछ उदाहरण इसे स्पष्ट कर देंगे) । 109-113
बन जाता है 109-3
, क्योंकि निचले अंतिम अंक का मतलब है 10 वीं जगह बढ़ना।
चुनौती
आपके कार्यक्रम को इनपुट के माध्यम से पूर्णांक की एक सूची लेनी चाहिए (जो कि आपकी भाषा या एक फ़ंक्शन के लिए मानक है)। आप तय कर सकते हैं कि यह सूची अल्पविराम से अलग है, अंतरिक्ष से अलग है, या एक वास्तविक सूची / सरणी के रूप में।
इस राशन का उपयोग करके उस सूची का प्रतिनिधित्व करने के लिए सबसे छोटा रास्ता (पहले श्रेणियों की संख्या द्वारा क्रमबद्ध, फिर श्रेणियों में शामिल वर्णों का योग) को आउटपुट करें । प्रत्येक धराशायी सीमा एक ही पंक्ति पर होनी चाहिए, लेकिन सीमाओं को अल्पविराम या नईलाइनों से अलग किया जा सकता है (नई रूपरेखा या अल्पविराम की अनुमति दी जाती है)। ये रेंज क्रम में होनी चाहिए।
चूंकि हमारा स्कूल वाई-फाई भयानक है , इसलिए मुझे उसे भेजने के लिए फ़ाइल को जितना संभव हो उतना छोटा करना होगा। सबसे छोटा कोड (बाइट्स में) जीतता है।
बोनस
मेरा शिक्षक सुस्त है, इसलिए कुछ चीजें हैं जो उसे बाहर निकालने में मदद करेंगी। गुणन के माध्यम से एकाधिक बोनस स्टैक, जैसे -10% बोनस (x 90%) और -25% (x 75%) बोनस = 90% * 75% = x 67.5% (-32.5% बोनस)।
- कभी-कभी वह उन्हें गलत क्रम में रखता है (वह गणित शिक्षक नहीं है)। यदि आपका प्रोग्राम पूर्णांकों को स्वीकार कर सकता है तो -20% बोनस लें, जो कम से कम सबसे बड़े क्रमबद्ध न हों।
- हमारी पुस्तक अजीब है, और प्रत्येक अनुभाग -10 पर समस्याओं को गिनना शुरू कर देता है। यदि आपका कार्यक्रम नकारात्मक संख्याओं को स्वीकार कर सकता है, तो -25% लें।
- यदि यह 10 के स्थान पर निचले अंतिम अंक के बोनस को स्वीकार करता है, जैसे कि
25-32
कम करना25-2
, -50% बोनस लेना।
परीक्षण के मामलों
In: 1, 2, 3, 4, 5
Out: 1-5
In: 3, 4, 5, 9, 10, 11, 12
Out: 3-5, 9-12
In: 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160
Out: 149-60
In: 1 2 3 4
Out: 1-4
For bonuses:
In: 109, 110, 111, 112, 113
Out: 109-3
In: 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29
Out: 19-9
In: -3, -2, -1, 0, 1, 2
Out: -3-2
In: -3, -2, -1
Out: -3--1
एक उत्तर शनिवार, 19 दिसंबर 2015 को स्वीकार किया जाएगा।
GLHF!
149 150 151 152 153 154 155 156 157 178 159 160
?
19-9
, जैसा कि पाठ का तात्पर्य 19,20,...,29
नहीं 19-29
है। तो कौन सा सही है?
1-4 9-2
?