ধরুন আমাদের পাঁচটি সংখ্যা b, p, f, h এবং c আছে। একটি রেস্টুরেন্টে দুই ধরনের বার্গার পাওয়া যায়। এগুলো হ্যামবার্গার এবং চিকেন বার্গার। হ্যামবার্গারের দুটি বান এবং একটি বিফ প্যাটি প্রয়োজন এবং চিকেন বার্গারের জন্য আমাদের দুটি বান এবং একটি চিকেন কাটলেট প্রয়োজন। আমাদের কাছে বি বান, পি বিফ প্যাটিস, এফ চিকেন কাটলেট রয়েছে। আমরা হ্যামবার্গার ১ টাকায় এবং চিকেন বার্গার সি টাকায় বিক্রি করার চেষ্টা করছি। আমাদের সর্বাধিক লাভ খুঁজে বের করতে হবে যা আমরা অর্জন করতে পারি।
সুতরাং, যদি ইনপুট হয় b =7; p =5; f =2; h =10; c =12, তাহলে আউটপুট হবে 34, কারণ একটি হ্যামবার্গার এবং দুটি চিকেন বার্গারের জন্য। আয় হল 1*10 + 2*12 =34।
পদক্ষেপ
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
res := 0 b := b / 2 if h < c, then: swap p and f swap h and c res := res + h * (minimum of b and p) + c * minimum of the (maximum of (b - p) and 0) and f) return res
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
#include <bits/stdc++.h> using namespace std; int solve(int b, int p, int f, int h, int c) { int res = 0; b /= 2; if (h < c) { swap(p, f); swap(h, c); } res += h * min(b, p) + c * min(max(b - p, 0), f); return res; } int main() { int b = 7; int p = 5; int f = 2; int h = 10; int c = 12; cout << solve(b, p, f, h, c) << endl; }
ইনপুট
7, 5, 2, 10, 12
আউটপুট
34