Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình C ++ để tìm kiếm lợi nhuận tối đa mà chúng tôi có thể kiếm được bằng cách làm bánh mì kẹp thịt và bánh mì kẹp thịt gà

Giả sử chúng ta có năm số b, p, f, h và c. Có hai loại bánh mì kẹp thịt trong nhà hàng. Đây là bánh mì kẹp thịt và bánh mì kẹp thịt gà. Hamburger cần hai cái bánh và một miếng thịt bò và đối với burger gà, chúng ta cần hai cái bánh và một phần cốt gà. Chúng tôi có b bánh, p thịt bò, f gà viên. Chúng tôi đang cố gắng bán hamburger với giá h rupee và burger gà với giá c rupee. Chúng tôi phải tìm ra lợi nhuận tối đa mà chúng tôi có thể đạt được.

Vì vậy, nếu đầu vào giống như b =7; p =5; f =2; h =10; c =12, thì đầu ra sẽ là 34, vì đối với một bánh mì kẹp thịt và hai bánh mì kẹp thịt gà. Thu nhập là 1 * 10 + 2 * 12 =34.

Các bước

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

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

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

#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;
}

Đầu vào

7, 5, 2, 10, 12

Đầu ra

34