다섯 개의 숫자 b, p, f, h 및 c가 있다고 가정합니다. 레스토랑에는 두 가지 종류의 버거가 있습니다. 햄버거와 치킨버거입니다. 햄버거에는 만두 2개와 소고기 패티가 필요하고 치킨 버거에는 만두 2개와 치킨 커틀릿이 필요합니다. 우리는 b 번, p 쇠고기 패티, f 치킨 커틀릿이 있습니다. 우리는 h 루피에 햄버거와 c 루피에 치킨 버거를 판매하려고합니다. 얻을 수 있는 최대 이익을 찾아야 합니다.
따라서 입력이 b =7과 같으면; 피 =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