সমস্যা বিবৃতি
দেওয়া এন চশমা জল আছে, এবং তাদের ক্ষমতা প্রতিটি একটি তালিকা. কাজ হল ঠিক 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