मेरी ओर से पहली पहेली, सुधार के सुझाव खुशी से मिले!
परिदृश्य है; आप एक वाइटवॉटर राफ्टिंग कंपनी के लिए एक प्रबंधक के रूप में काम करते हैं। हर सुबह, आपको बुकिंग की एक सूची दी जाती है, और आपको उन्हें भार भार में क्रमबद्ध करना होता है। अपनी चुनी हुई भाषा में एक प्रोग्राम या फ़ंक्शन लिखें जो आपके लिए ऐसा करता है।
प्रत्येक बेड़ा अधिकतम n
ग्राहक रखता है, और प्रत्येक बुकिंग 1 और n
लोगों (समावेशी) के समूह के लिए है । निम्नलिखित नियमों का पालन किया जाना चाहिए;
कोई समूह विभाजित नहीं किया जा सकता है। यदि वे एक साथ बुक करते हैं, तो वे सभी एक ही बेड़ा में होना चाहिए।
राफ्ट की संख्या कम से कम होनी चाहिए।
दो पूर्ववर्ती नियमों के अधीन, समूहों को राफ्ट के बीच यथासंभव फैलाया जाना चाहिए।
इनपुट।
संख्या n
(आप मान सकते हैं कि यह एक सकारात्मक पूर्णांक है), और सभी बुकिंग का आकार। यदि आपकी भाषा ऐसी चीजों का समर्थन करती है तो यह एक सरणी, सूची या समान डेटा संरचना हो सकती है। ये सभी 1 और के बीच सकारात्मक पूर्णांक होंगे n
। बुकिंग का क्रम परिभाषित नहीं है, न ही यह महत्वपूर्ण है।
आउटपुट। बुकिंग नंबरों की एक सूची, जिन्हें भार भार में वर्गीकृत किया गया है। समूहीकरण को स्पष्ट रूप से इंगित किया जाना चाहिए, जैसे;
- एक सूची, या सारणी की सारणी।
- प्रत्येक बेड़ा के लिए एक अल्पविराम से अलग सूची। प्रत्येक बेड़ा के बीच की नई रेखा।
आप तीसरे नियम को कैसे लागू करते हैं, यह आप पर निर्भर करता है, लेकिन इसमें औसतन अधिभोग का पता लगाना, और इससे यथासंभव विचलन को कम करना शामिल हो सकता है। यहाँ कुछ परीक्षण मामले हैं।
n Bookings Output
6 [2,5] [5],[2]
4 [1,1,1,1,1] [1,1,1],[1,1]
6 [2,3,2] [2,2],[3]
6 [2,3,2,3] [2,3],[2,3]
6 [2,3,2,3,2] [2,2,2],[3,3]
12 [10,8,6,4,2] [10],[8,2],[6,4]
6 [4,4,4] [4],[4],[4]
12 [12,7,6,6] [12],[7],[6,6]
मानक नियम लागू होते हैं, सबसे छोटा कोड जीतता है। मज़े करो!
संपादित; तीसरे नियम के लिए जितना संभव हो उतना परिभाषित करने का सुझाव दिया गया तरीका ।
एक बार राफ्ट की संख्या r
निर्धारित हो जाने के बाद (दूसरे नियम के अधीन), औसत अधिभोग की a
गणना बुकिंग के दौरान योग करके, और विभाजित करके की जा सकती है r
। प्रत्येक बेड़ा के लिए, औसत अधिभोग से विचलन का उपयोग करके पाया जा सकता है d(x) = abs(n(x)-a)
, जहां n(x)
प्रत्येक बेड़ा में लोगों की संख्या है और 1 <= x <= r
। कुछ निरंतर, एकल-मूल्यवान फ़ंक्शन के लिए f(y)
, जो सख्ती से सकारात्मक है और सभी सकारात्मक के लिए एक सख्ती से सकारात्मक पहला और गैर-नकारात्मक दूसरा डेरिवेटिव है y
, हम F
सभी के योग के रूप में, एक गैर-नकारात्मक मात्रा को परिभाषित करते हैं f(d(x)), 1 <= x <= r
। बेड़ा आवंटन का कोई भी विकल्प जो पहले दो नियमों को संतुष्ट करता है, और जहां F
वैश्विक न्यूनतम के बराबर है, तीसरे नियम को भी संतुष्ट करेगा।
g(y) = y
(दूसरा शून्य शून्य) या g(y) = y²
(पहले कब शून्य शून्य) का उपयोग नहीं कर सकते y = 0
।