ধরুন আমাদের দুটি সংখ্যা l এবং r আছে। একটি দোকান আছে এবং আমরা ডিসকাউন্ট সহ 'ক' সংখ্যক খাবার সহ কিছু খাবারের পাত্র বিক্রি করতে চাই এবং কিছু গ্রাহক x খাবার কিনতে চায়। একটি লোভী কৌশল অনুসরণ করে গ্রাহক -
-
সে ডিসকাউন্ট সহ (x/a) প্যাকগুলির ফ্লোর ক্রয় করে
-
তারপর এক এক করে অবশিষ্ট (x mod a) খাবার কিনতে চায়।
কিন্তু গ্রাহক লোভী, তাই সে যদি একের পর এক (x mod a) খাবার কিনতে চায় এবং তা ঘটে (x mod a) ≥ a/2, তাই সে খাবারের পুরো প্যাকটি কেনার সিদ্ধান্ত নেয়। একজন গ্রাহক l থেকে r (উভয়ই অন্তর্ভুক্ত) পরিসরে যেকোন সংখ্যক খাবার কিনতে পারেন, আমাদের পরীক্ষা করতে হবে যে আমরা এমন আকারের প্যাক বাছাই করতে পারি কি না যাতে প্রতিটি গ্রাহক প্রাথমিকভাবে চেয়েছিলেন তার চেয়ে বেশি ক্যান কেনেন?
সুতরাং, যদি ইনপুটটি 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