C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

ハンバーガーとチキンバーガーを作ることで最大の利益を上げるためのC++プログラム


5つの数b、p、f、h、cがあるとします。レストランには2種類のハンバーガーがあります。ハンバーガーとチキンバーガーです。ハンバーガーには2つのパンとビーフパティが必要です。チキンバーガーには2つのパンとチキンカトレットが必要です。 b個のバンズ、p個のビーフパティ、f個のチキンカツレツがあります。 hルピーにはハンバーガー、cルピーにはチキンバーガーを販売しようとしています。得ることができる最大の利益を見つけなければなりません。

したがって、入力がb=7のような場合。 p =5; f =2; h =10; c =12の場合、1つのハンバーガーと2つのチキンバーガーの場合、出力は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

  1. 数値cおよびdを作成するための最小演算を見つけるためのC++コード

    2つの数cとdがあるとします。 Amalには2つの数値aとbがあり、最初は両方ともゼロです。Amalはそれらに対して何らかの操作を実行したいと考えています。各操作を実行する前に、正の整数kが選択され、次の操作のいずれかを実行するために使用されます- aとbの両方に数kを追加する、または 数kをaに加算し、bからkを減算する、または 数kをbに加算し、aからkを減算します。 aとbをそれぞれcと等しくするために必要な操作の最小数を見つける必要があります。不可能な場合は、-1を返します。 したがって、入力がc=3のような場合。 d =5の場合、出力は2になります。これは、

  2. サイズdで作成できる十二角形の数をカウントするC++プログラム

    数dがあるとします。正方形のタイルと辺の長さが1の通常の三角形のタイルが無数にあると考えてください。これらのタイルを使用して、側面dの通常の十二角形(12辺の多角形)を形成できる方法をいくつ見つける必要があります。答えが大きすぎる場合は、結果mod998244353を返します。 ステップ これを解決するために、次の手順に従います- b := floor of d/2 - 1 c := 1 for initialize i := 2, when i < d, update (increase i by 1), do:    b := b * (floor of