সমস্যা বিবৃতি
আকারের একটি অ্যারে দেওয়া, N বালতিকে প্রতিনিধিত্ব করে, প্রতিটি অ্যারে সূচক আইটেম ধারণকারী। K ট্যুর দেওয়া হয়েছে যার মধ্যে সমস্ত আইটেম বিতরণ করা প্রয়োজন। এটি 1 সফরে শুধুমাত্র একটি বালতি থেকে আইটেম নেওয়ার অনুমতি দেওয়া হয়। টাস্ক হল প্রতি ট্যুরে ন্যূনতম কত আইটেম ডেলিভারি করতে হবে তা বলা যাতে সমস্ত আইটেম কে ট্যুরের মধ্যে ডেলিভারি করা যায়।
যদি আইটেম ={1, 3, 5, 7, 9} এবং 10 ট্যুর সহ 5টি বালতি থাকে তবে আমরা একবারে 3টি আইটেম সরবরাহ করে প্রতি ট্যুরে 3টি আইটেম সরবরাহ করতে পারি,
-
1ম বালতির আকার হল 1 তাই প্রয়োজনীয় ট্যুরের সংখ্যা =1
-
২য় বালতির আকার ৩ তাই প্রয়োজনীয় ট্যুরের সংখ্যা =১
-
3য় বালতির আকার 5 তাই প্রয়োজনীয় ট্যুরের সংখ্যা =2 (প্রতি ট্যুরে 3 + 2 আইটেম)
-
4র্থ বালতির আকার 7 তাই প্রয়োজনীয় ট্যুরের সংখ্যা =3 (প্রতি ট্যুরে 3 + 3 + 1 আইটেম)
-
5ম বালতির আকার 9 তাই প্রয়োজনীয় ট্যুরের সংখ্যা =3 (প্রতি ট্যুরে 3 + 3 + 3 আইটেম)
মোট ট্যুরের সংখ্যা =10
অ্যালগরিদম
<পূর্ব>1. প্রতি ডেলিভারিতে বিতরণ করা আইটেমের ন্যূনতম সংখ্যা খুঁজুন2. একটি বালতিতে 1 থেকে আইটেমের সর্বোচ্চ মান পর্যন্ত পুনরাবৃত্তি করুন এবং প্রতিটি বালতির জন্য প্রয়োজনীয় ট্যুরের সংখ্যা গণনা করুন এবং সম্পূর্ণ ডেলিভারির জন্য মোট ট্যুরের সংখ্যা খুঁজুন3। K এর থেকে কম বা সমান ট্যুর সহ প্রথম এই ধরনের মান প্রয়োজনীয় সংখ্যা দেয়উদাহরণ
#include#include #include #define SIZE(arr) (sizeof(arr) / sizeof(arr[0])) namespace ব্যবহার করে std;int minItemsDeliveried(int *arr, int n, int k){ int maxElement =INT_MIN; জন্য (int i =0; i আউটপুট
আপনি যখন উপরের প্রোগ্রামটি কম্পাইল এবং এক্সিকিউট করবেন। এটি নিম্নলিখিত আউটপুট −
তৈরি করেসর্বনিম্ন আইটেম বিতরণ করা হবে =3