Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình C++ tìm lợi nhuận tối đa làm bánh mì kẹp thịt bò và gà

Cho b, p, f, h, c. Có b ổ bánh mì, p miếng bò, f miếng gà. Bánh mì kẹp bò: 2 ổ + 1 bò, bán h. Bánh mì kẹp gà: 2 ổ + 1 gà, bán c. Tối đa hóa lợi nhuận.

Ví dụ

Với b=7, p=5, f=2, h=10, c=12, đầu ra 34. Làm 1 bò (10) + 2 gà (24) = 34.

Giải thuật

b /= 2 (số cặp ổ). Ưu tiên làm loại lợi nhuận cao hơn: nếu h < c hoán đổi. Làm tối đa min(b, p) bánh bò. Dùng ổ còn lại làm bánh gà: min(max(b-p,0), f).

Mã C++

#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, p = 5, f = 2, h = 10, c = 12;
    cout << solve(b, p, f, h, c) << endl;
}

Đầu vào / Đầu ra

Input: 7, 5, 2, 10, 12
Output: 34