मान लीजिए अमल और बिमल एक खेल खेल रहे हैं और पहले अमल की बारी है। खेल नीचे जैसा है -
ढेर में n पत्थर हैं। प्रत्येक खिलाड़ी ढेर से एक पत्थर ले सकता है और उस पत्थर की स्थिति के आधार पर अंक प्राप्त कर सकता है। अमल और बिमल पत्थरों को अलग-अलग तरीके से महत्व दे सकते हैं।
हमारे पास समान लंबाई के दो सरणियाँ हैं, A_Values और B_Values। प्रत्येक A_Values[i] और B_Values[i] दर्शाता है कि कैसे अमल और बिमल क्रमशः ith पत्थर को महत्व देते हैं। यहां जिसका स्कोर अधिकतम है, वह सभी पत्थरों को बाहर निकालने के बाद विजेता होगा। यदि कोई टाई है, तो खेल ड्रॉ में परिणत होता है। दोनों खिलाड़ी बेहतरीन खेलेंगे। दोनों एक दूसरे के मूल्यों को जानते हैं। तो अगर अमल जीतता है, तो वापसी 1. अगर बिमल जीतता है, तो वापसी -1। और ड्रॉ मैच के लिए, 0 लौटाएं।
इसलिए, यदि इनपुट A_Values =[2,4] B_Values =[3,5] जैसा है, तो आउटपुट 1 होगा क्योंकि अमल बिंदु 4 के साथ दूसरे पत्थर का चयन करेगा, इसलिए बिमल के पास बिंदु के साथ पहला पत्थर लेने का केवल एक मौका है। 3, लेकिन जैसे अमल का स्कोर अधिक है, इसलिए वह जीत जाता है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- n :=A_Values का आकार
- संयुक्त मान :=एक नई सूची
- मैं के लिए 0 से n की सीमा में, करते हैं
- tmpV :=A_Values[i] + B_Values[i]
- अंत में संयुक्त मानों में जोड़ी (temV, i) डालें
- संयुक्त मूल्यों की सूची को उल्टे क्रम में क्रमबद्ध करें
- score_a :=0, Score_b :=0
- मैं के लिए 0 से n -1 की सीमा में, करो
- curV :=संयुक्त मान[i]
- यदि i mod 2 0 के समान है, तो
- score_a :=Score_a + A_Values[curV[1]]
- अन्यथा,
- score_b :=Score_b + B_Values[curV[1]]
- अगर स्कोर_ए> स्कोर_बी, तो
- वापसी 1
- अन्यथा जब Score_a, Score_b के समान हो, तब
- वापसी 0
- अन्यथा,
- वापसी -1
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def solve(A_Values, B_Values): n = len(A_Values) combinedValues = [] for i in range(n): tmpV = A_Values[i] + B_Values[i] combinedValues.append([tmpV, i]) combinedValues.sort(reverse=True) score_a, score_b = 0, 0 for i in range(n): curV = combinedValues[i] if (i % 2 == 0): score_a += A_Values[curV[1]] else: score_b += B_Values[curV[1]] if (score_a > score_b): return 1 elif (score_a == score_b): return 0 else: return -1 A_Values = [2,4] B_Values = [3,5] print(solve(A_Values, B_Values))
इनपुट
[2,4], [3,5]
आउटपुट
1