ভারোত্তোলন করার সময়, আমি একটি বারে বেশ কয়েকটি প্লেট সংযুক্ত করে একটি নির্দিষ্ট ওজন তৈরি করতে চাই।
আমার কাছে নিম্নলিখিত প্লেট রয়েছে:
- প্রতি 1 কেজি 6 টি প্লেট
- ২.৫ কেজি প্রতি 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
যদি আপনার কোড বিপরীত ক্রমে সংখ্যাগুলি আউটপুট করে দেয় (ভারী প্লেট থেকে হালকা একের দিকে) তবে বিভ্রান্তি এড়াতে দয়া করে এটিকে স্পষ্টভাবে উল্লেখ করুন।