यह एक और पहेली का "प्रतिपक्ष" है, पज़लिंग पर मेले के राजा के लिए आठ सिक्के ।
आप पृष्ठभूमि के लिए उपरोक्त पहेली पढ़ सकते हैं। इस पहेली के बारे में विवरण इस प्रकार है।
विभिन्न मूल्यों के 8 प्रकार के सिक्कों का एक सेट बनाया गया है, राजा चाहते हैं कि आप अधिकतम N का पता लगा सकें, ताकि 0 से N तक की किसी भी कीमत का भुगतान 8 सिक्कों से अधिक और बिना किसी शुल्क के किया जा सके।
उदाहरण के लिए, (ग्लोरफिंडेल के उत्तर से लिया गया)। यदि मान 1, 2, 5, 13, 34, 89, 233, 610 के सिक्कों का एक सेट दिया गया है, तो आपके प्रोग्राम को 1596 का उत्पादन करना चाहिए, क्योंकि 0 और 1596 (समावेशी) के बीच के प्रत्येक नंबर को और अधिक के योग द्वारा दर्शाया जा सकता है। दी गई सूची से 8 नंबर (संख्या दोहरा सकते हैं), जबकि 1597 को उस तरह से प्रतिनिधित्व नहीं किया जा सकता है।
गणितीय तरीके से, यदि इनपुट एक सेट S है जिसमें 8 धनात्मक पूर्णांक होते हैं, तो वांछित आउटपुट N संतुष्ट करता है कि 0 और N के बीच किसी भी संख्या n के लिए , X1, x2, x3, ..., x8 मौजूद है जैसे कि
आपका लक्ष्य एक प्रोग्राम, एक फ़ंक्शन या एक स्निपेट लिखना है जो इनपुट के रूप में 8 नंबर लेता है, और ऊपर वर्णित अधिकतम एन आउटपुट करता है।
नियम:
- लचीले I / O की अनुमति है, इसलिए आपका कार्यक्रम किसी भी रूप में इनपुट ले सकता है जो सबसे उपयुक्त है। आप मान सकते हैं कि इनपुट नंबर उस तरह से हल किए गए हैं जो आपके प्रोग्राम के लिए सबसे उपयुक्त हैं।
- यदि आपका प्रोग्राम इनपुट ऑर्डर पर निर्भर करता है, तो कृपया इसे अपने उत्तर में बताएं
- इनपुट 8 अलग, सकारात्मक पूर्णांक (शून्य नहीं) का एक सेट है। आउटपुट एक गैर-नकारात्मक पूर्णांक है।
- यदि इनपुट सेट में कोई 1 नहीं है, तो आपके प्रोग्राम का आउटपुट 0 होना चाहिए क्योंकि 0 से 0 तक की कोई भी संख्या आवश्यकता को पूरा करती है।
- अमान्य इनपुट (सेट में शून्य, ऋणात्मक या डुप्लिकेट नंबर) के मामले में, आपका प्रोग्राम कुछ भी कर सकता है।
- मानक खामियों को मना किया जाता है।
- आपका प्रोग्राम आधुनिक कंप्यूटर पर कुछ मिनटों के भीतर चलना चाहिए।
टेस्ट केस (ज्यादातर पज़लिंग पर जुड़े प्रश्न के उत्तर से लिए गए):
[1, 2, 3, 4, 5, 6, 7, 8] => 64
[2, 3, 4, 5, 6, 7, 8, 9] => 0
[1, 3, 4, 5, 6, 7, 8, 9] => 72
[1, 2, 5, 13, 34, 89, 233, 610] => 1596
[1, 5, 16, 51, 130, 332, 471, 1082] => 2721
[1, 6, 20, 75, 175, 474, 756, 785] => 3356
यह एक कोड-गोल्फ है , इसलिए प्रत्येक भाषा में सबसे छोटा कार्यक्रम या स्निपेट जीतता है!