Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

햄버거와 치킨 버거를 만들어 최대의 이익을 얻을 수 있는 C++ 프로그램

<시간/>

다섯 개의 숫자 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