মান লিখুন: আমাদের কাছে n উপাদান বিশিষ্ট একটি অ্যারে A এবং l, r, k মানগুলো আছে। আমল চকলেট কিনবে কিন্তু খুব মंহগা বা খুব সস্তা চকলেট কিনবে না। দোকানে nটি চকলেট বার আছে যাদের দাম A-তে দেওয়া আছে। দাম r-র চেয়ে বড় হলে খুব মंহগা, l-র চেয়ে ছোট হলে খুব সস্তা। সে সর্বোচ্চ k টাকা খরচ করতে চায়। সে সর্বোচ্চ কতটি চকলেট কিনতে পারবে তা বের করতে হবে।
উদাহরণ
যদি ইনপুট হয় A = [1, 2, 3, 4, 5, 6]; l = 3; r = 5; k = 10, তবে আউটপুট হবে 2, কারণ সে ৩ ও ৪ টাকার চকলেট কিনে মোট ৭ টাকা খরচ করবে।
সমাধানের ধাপসমূহ
n := A এর আকার
ans := 0
A সর্ট করুন
for i := 0 থেকে n-1:
যদি A[i] > k: লুপ থেকে বের হোন
যদি A[i] >= l এবং A[i] <= r:
k := k - A[i]
ans বাড়ান
ans রিটার্ন করুন
C++ বাস্তবায়ন
#include <bits/stdc++.h>
using namespace std;
int solve(vector<int> A, int l, int r, int k) {
int n = A.size();
int ans = 0;
sort(A.begin(), A.end());
for (int i = 0; i < n; ++i) {
if (A[i] > k) break;
if (A[i] >= l && A[i] <= r) {
k -= A[i];
++ans;
}
}
return ans;
}
int main() {
vector<int> A = { 1, 2, 3, 4, 5, 6 };
int l = 3, r = 5, k = 10;
cout << solve(A, l, r, k) << endl;
}
ইনপুট
{ 1, 2, 3, 4, 5, 6 }, 3, 5, 10
আউটপুট
2