তিনটি সংখ্যা a, b, c দেওয়া আছে। তিনটি হিপে যথাক্রমে a, b, c পাথর আছে। প্রতিবার নিচের অপারেশনগুলো করতে পারবেন:
- প্রথম হিপ থেকে ১টি এবং دوم হিপ থেকে ২টি পাথর নিন (যদি পর্যাপ্ত থাকে)
- দ্বিতীয় হিপ থেকে ১টি এবং তৃতীয় হিপ থেকে ২টি পাথর নিন (যদি পর্যাপ্ত থাকে)
সর্বোচ্চ কতটি পাথর সংগ্রহ করা যাবে তা বের করতে হবে।
উদাহরণ
a=3, b=4, c=5 → আউটপুট: 9
ব্যাখ্যা: দুইবার অপারেশন ২ করে ২+৪=৬ পাথর, তারপর অপারেশন ১ করে ১+২=৩ পাথর, মোট ৯।
সমাধানের ধাপসমূহ
return (min(b, c/2) + min(a, (b - min(b, c/2))/2)) * 3
সি++ কোড উদাহরণ
#include <bits/stdc++.h>
using namespace std;
int solve(int a, int b, int c) {
return (min(b, c/2) + min(a, (b - min(b, c/2))/2)) * 3;
}
int main() {
int a=3, b=4, c=5;
cout << solve(a, b, c) << endl;
}
ইনপুট
3, 4, 5
আউটপুট
9