Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ หากำไรสูงสุดจากการทำแฮมเบอร์เกอร์และเบอร์เกอร์ไก่


สมมติว่าเรามีตัวเลขห้าตัว b, p, f, h และ c มีเบอร์เกอร์สองประเภทในร้านอาหาร เหล่านี้เป็นแฮมเบอร์เกอร์และเบอร์เกอร์ไก่ แฮมเบอร์เกอร์ต้องการขนมปังสองก้อนและขนมพายเนื้อ สำหรับเบอร์เกอร์ไก่ เราต้องการขนมปังสองชิ้นและชิ้นไก่ชิ้นหนึ่ง เรามี บี บัน พี พายเนื้อ เอฟ ไก่ทอด เรากำลังพยายามขายแฮมเบอร์เกอร์ในราคารูปีและเบอร์เกอร์ไก่ในราคารูปีซี เราต้องหากำไรสูงสุดที่เราจะได้รับ

ดังนั้นหากอินพุตเป็นเหมือน b =7; พี =5; ฉ =2; ชั่วโมง =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