Computer >> Máy Tính >  >> Lập trình >> C ++

Mã C ++ để kiểm tra kích thước gói có thể được xác định từ phạm vi nhất định

Giả sử chúng ta có hai số l và r. Có một cửa hàng và chúng tôi muốn bán một số hộp đựng thực phẩm với 'một số' loại thực phẩm với mức chiết khấu và một số khách hàng muốn mua x loại thực phẩm. Khách hàng theo chiến lược tham lam -

  • Anh ấy mua các gói (x / a) sàn với chiết khấu

  • Sau đó muốn mua từng loại thực phẩm còn lại (x mod a).

Nhưng khách hàng rất tham lam, vì vậy nếu anh ta muốn mua (x mod a) từng loại thực phẩm và nó tình cờ (x mod a) ≥ a / 2, vì vậy anh ta quyết định mua cả gói thực phẩm. Một khách hàng có thể mua bất kỳ số lượng thực phẩm nào trong phạm vi từ l đến r (bao gồm cả hai loại), chúng tôi phải kiểm tra xem chúng tôi có thể chọn kích thước gói a như vậy mà mỗi khách hàng mua nhiều lon hơn họ muốn ban đầu không?

Vì vậy, nếu đầu vào giống như l =3; r =4, thì đầu ra sẽ là True, vì nếu a =5, vì vậy nếu họ muốn mua 3 hoặc 4 lon, họ có thể mua một gói.

Các bước

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

if r / 2 >= l, then:
   return false
Otherwise
   return true

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

#include <bits/stdc++.h>
using namespace std;
bool solve(int l, int r){
   if (r / 2 >= l)
      return false;
   else
      return true;
}
int main(){
   int l = 3;
   int r = 4;
   cout << solve(l, r) << endl;
}

Đầu vào

3,4

Đầu ra

1