मान लीजिए कि हमारे पास बॉक्स टाइप नामक 2 डी सरणी के रूप में दर्शाए गए बॉक्स का एक सेट है, जहां बॉक्स टाइप्स [i] में दो तत्व होते हैं [टाइप i के बॉक्स की संख्या, टाइप i के प्रति बॉक्स में इकाइयों की संख्या]। अब हमारे पास एक और मूल्य k भी है, जो उस ट्रक पर रखे जा सकने वाले बक्सों की अधिकतम संख्या है। हम ट्रक पर डालने के लिए किसी भी बॉक्स का चयन कर सकते हैं जब तक कि बक्सों की संख्या k को पार नहीं करती है। हमें ट्रक पर रखी जा सकने वाली इकाइयों की अधिकतम कुल संख्या ज्ञात करनी है।
इसलिए, यदि इनपुट बॉक्सटाइप्स =[[2,4], [3,3], [4,2]], के =6 जैसा है, तो आउटपुट 19 होगा, क्योंकि वहाँ हैं
-
टाइप 1 के 2 बॉक्स और प्रत्येक में 4 इकाइयां हैं
-
टाइप 2 के 3 बॉक्स और प्रत्येक में 3 इकाइयाँ हैं
-
प्रकार 3 के 4 बक्से और प्रत्येक में 2 इकाइयाँ होती हैं
k =6 के रूप में, हम टाइप 1 और 2 के सभी बॉक्स और टाइप 3 का केवल एक बॉक्स ले सकते हैं, इसलिए (2*4) + (3*3) + 2 =8 + 9 +2 =19 आइटम होंगे ।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
सॉर्ट बॉक्स प्रत्येक बॉक्स में मौजूद वस्तुओं की संख्या के आधार पर टाइप करें
-
कुल:=0, भरें:=0
-
बॉक्स टाइप में प्रत्येक i के लिए, करें
-
यदि भरण + i[0] <=k, तो
-
भरें:=भरें + मैं [0]
-
कुल:=कुल + मैं [0] * मैं [1]
-
-
अन्यथा,
-
कुल :=कुल + (k - भरण) * i[1]
-
लूप से बाहर आएं
-
-
-
कुल वापसी
उदाहरण (पायथन)
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def solve(boxTypes, k): boxTypes.sort(key = lambda x : x[1], reverse = True) total = 0 fill = 0 for i in boxTypes: if fill + i[0] <= k: fill += i[0] total += i[0] * i[1] else: total += (k - fill) * i[1] break return total boxTypes = [[2,4],[3,3],[4,2]] k = 6 print(solve(boxTypes, k))
इनपुट
[[2,4],[3,3],[4,2]], 6
आउटपुट
19