भारोत्तोलन करते समय, मैं कई प्लेटों को एक बार में संलग्न करके एक विशिष्ट वजन बनाना चाहता हूं।
मेरे पास निम्नलिखित प्लेट हैं:
- 1 किलो की 6 प्लेटें
- 2.5 किग्रा प्रत्येक की 6 प्लेटें
- 5 किलो प्रत्येक की 6 प्लेटें
- प्रत्येक 10 किलो की 6 प्लेटें
बार का वजन 10 किलो है।
यह केवल जोड़े में प्लेटों को संलग्न करने की अनुमति है - वे बार के प्रत्येक छोर पर संलग्न हैं, और दो छोरों पर व्यवस्था पूरी तरह से सममित होनी चाहिए (उदाहरण के लिए एक छोर पर दो 5-किलो की प्लेट संलग्न करना, और एक 10 किलो की प्लेट पर दूसरा छोर सुरक्षा के कारणों से निषिद्ध है)।
एक कार्यक्रम या एक फ़ंक्शन बनाएं जो मुझे बताता है कि किसी दिए गए कुल वजन को प्राप्त करने के लिए मुझे प्रत्येक प्रकार की कितनी प्लेटों का उपयोग करना है। इनपुट 11 से अधिक पूर्णांक है; आउटपुट 4 नंबरों की एक सूची / सरणी / स्ट्रिंग है। यदि लक्षित वजन प्राप्त करने के लिए मौजूदा प्लेटों को संयोजित करना असंभव है, तो एक शून्य / खाली सरणी, एक अमान्य स्ट्रिंग, एक अपवाद या कुछ ऐसे फेंक दें।
यदि कई समाधान हैं, तो कोड केवल एक ही आउटपुट होना चाहिए (उपयोगकर्ता का चयन न करें - वह अन्य चीजों के साथ बहुत व्यस्त है)।
परीक्षण के मामलों:
12 -> [2 0 0 0] - 2 plates of 1 kg plus the bar of 10 kg
13 -> [0 0 0 0] - a special-case output that means "impossible"
20 -> [0 0 2 0] - 2 plates of 5 kg + bar
20 -> [0 4 0 0] - a different acceptable solution for the above
21 -> [6 2 0 0] - 6 plates of 1 kg + 2 plates of 2.5 kg + bar
28 -> [0 0 0 0] - impossible
45 -> [0 2 6 0] - a solution for a random number in range
112 -> [2 4 6 6] - a solution for a random number in range
121 -> [6 6 6 6] - maximal weight for which a solution is possible
यदि आपका कोड विपरीत क्रम (भारी प्लेट से प्रकाश एक तक) में संख्याओं को आउटपुट करता है, तो कृपया भ्रम से बचने के लिए इसे स्पष्ट रूप से निर्दिष्ट करें।