সমস্যা বিবৃতি
দেওয়া এন চশমা জল আছে, এবং তাদের ক্ষমতা প্রতিটি একটি তালিকা. কাজ হল ঠিক K চশমা পূরণ করার জন্য প্রয়োজনীয় ন্যূনতম সংখ্যক বোতল খুঁজে বের করা। প্রতিটি বোতলের ক্ষমতা 100 ইউনিট।
উদাহরণ
যদি N =5, K =4, ক্ষমতা[] ={1, 2, 3, 2, 1}।
- 2, 3, 2 ধারণক্ষমতার চশমা পূরণ করতে 8 ইউনিট প্রয়োজন৷
- এইভাবে, মাত্র ১টি বোতল খোলার জন্য যথেষ্ট।
অ্যালগরিদম
- ঠিক K চশমা পূরণ করতে, ন্যূনতম ক্ষমতার K চশমা নিন
-
মোট প্রয়োজনীয় বোতল −
হিসাবে গণনা করা যেতে পারে(1ম k চশমার ক্ষমতার সমষ্টি) / (1 বোতলের ধারণক্ষমতা) এর সিল মান।
উদাহরণ
#include <iostream> #include <algorithm> #include <cmath> using namespace std; int minBottles(int *capacity, int n, int k) { sort(capacity, capacity + n); int sum = 0; for (int i = 0; i < k; ++i) { sum += capacity[i]; } return ceil((double)sum/100); } int main() { int capacity[] = {1, 2, 3, 2, 1}; cout << "Min bottles required = " <<minBottles(capacity, 5, 4) << endl; return 0; }
আউটপুট
আপনি যখন উপরের প্রোগ্রামটি কম্পাইল এবং এক্সিকিউট করবেন। এটি নিম্নলিখিত আউটপুট −
তৈরি করেMin bottles required = 1