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

รหัส C++ สำหรับตรวจสอบขนาดแพ็คสามารถกำหนดได้จากช่วงที่กำหนด


สมมติว่าเรามีตัวเลขสองตัว l และ r มีร้านค้าแห่งหนึ่งและเราต้องการขายภาชนะใส่อาหารที่มีอาหารจำนวน 'a' พร้อมส่วนลด และลูกค้าบางรายต้องการซื้ออาหาร x ลูกค้าทำตามกลยุทธ์ที่โลภ −

  • เขาซื้อชั้นของแพ็ค (x/a) พร้อมส่วนลด

  • แล้วต้องการซื้ออาหารที่เหลือ (x mod a) ทีละรายการ

แต่ลูกค้าเป็นคนโลภ ดังนั้น ถ้าเขาต้องการซื้ออาหาร (x mod a) ทีละอย่าง และมันเกิดขึ้นที่ (x mod a) ≥ a/2 เขาจึงตัดสินใจซื้ออาหารทั้งห่อ ลูกค้าสามารถซื้ออาหารจำนวนเท่าใดก็ได้ในช่วง l ถึง r (รวมทั้งสองอย่าง) เราต้องตรวจสอบว่าเราสามารถเลือกขนาดแพ็ค a ที่ลูกค้าแต่ละรายซื้อกระป๋องมากกว่าที่พวกเขาต้องการในตอนแรกได้หรือไม่

ดังนั้นหากอินพุตเป็นเหมือน l =3; r =4 ผลที่ได้จะเป็น True เพราะถ้า a =5 ดังนั้นหากต้องการซื้อ 3 หรือ 4 กระป๋องก็สามารถซื้อเป็นแพ็คได้

ขั้นตอน

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

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

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

#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;
}

อินพุต

3,4

ผลลัพธ์

1