मान लीजिए कि हमारे पास दो संख्याएँ l और r हैं। एक दुकान है और हम कुछ खाद्य कंटेनर को 'ए' संख्या वाले खाद्य पदार्थों को छूट के साथ बेचना चाहते हैं, और कुछ ग्राहक x खाद्य पदार्थ खरीदना चाहते हैं। लालची रणनीति का पालन करने वाला ग्राहक -
-
वह छूट के साथ (x/a) पैक का फर्श खरीदता है
-
फिर एक-एक करके शेष (x mod a) खाद्य पदार्थ खरीदना चाहता है।
लेकिन ग्राहक लालची है, इसलिए यदि वह एक-एक करके (x mod a) खाद्य पदार्थ खरीदना चाहता है और ऐसा होता है (x mod a) a/2, तो वह खाद्य पदार्थों का पूरा पैक खरीदने का फैसला करता है। एक ग्राहक l से r (दोनों सम्मिलित) में कितनी भी संख्या में खाद्य पदार्थ खरीद सकता है, हमें यह जांचना होगा कि क्या हम इस तरह के आकार के पैक को चुन सकते हैं कि प्रत्येक ग्राहक शुरुआत में जितना चाहें उतना अधिक डिब्बे खरीदता है?
तो, अगर इनपुट एल =3 की तरह है; r =4, तो आउटपुट ट्रू होगा, क्योंकि अगर 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