मान लीजिए अमल और बिमल एक गेम खेल रहे हैं जहां उनके पास कुछ संख्याओं वाली एक सरणी A है। गेम के नियम इस प्रकार हैं:
- बिमल हमेशा शुरू करेगा
- प्रत्येक चाल में एक खिलाड़ी सरणी से अधिकतम तत्व को हटा देता है और हटाए गए तत्व के दाईं ओर मौजूद अन्य सभी तत्व भी हटा दिए जाएंगे।
- वे बारी-बारी से खेलते हैं
- जो खिलाड़ी सभी शेष तत्वों को हटा देगा, वह गेम जीत जाएगा।
तो, यदि इनपुट nums = [5,2,6,3,4] है, तो आउटपुट अमल होगा क्योंकि पहले बिमल [6,3,4] को हटा देगा तो सरणी [5,2] होगी, फिर अमल सभी को हटा देगा, इसलिए वह विजेता होगा।
इसे हल करने के लिए, हम निम्न चरणों का पालन करेंगे:
- maximum := -1
- count := 0
- nums में प्रत्येक a के लिए, करें
- यदि a > maximum शून्येतर है, तो
- count := count + 1
- maximum := a
- यदि a > maximum शून्येतर है, तो
- यदि count mod 2, 0 के समान है, तो
- "अमल" लौटाएं
- "बिमल" लौटाएं
उदाहरण
बेहतर समझ के लिए निम्न कार्यान्वयन देखें:
def solve(nums): maximum = -1 count = 0 for a in nums: if a > maximum: count += 1 maximum = a if count % 2 == 0: return "Amal" return "Bimal" nums = [5,2,6,3,4] print(solve(nums))
इनपुट
[5,2,6,3,4]
आउटपुट
Amal