मान लीजिए कि हमारे पास सकारात्मक पूर्णांकों की एक सरणी A है, तत्व अद्वितीय हैं, अब, दो खिलाड़ी P और Q एक खेल खेल रहे हैं। प्रत्येक चाल पर, कोई भी एक खिलाड़ी सरणी से दो संख्याएँ a और b चुनता है और यदि |a – b| सरणी में नहीं है उसके बाद खिलाड़ी इस संख्या को सरणी में जोड़ता है। जब कोई खिलाड़ी चाल नहीं चल सकता तो खेल हार जाता है। यदि खिलाड़ी P हमेशा खेल शुरू करता है तो हमें खेल के विजेता को खोजना होगा।
इसलिए, यदि इनपुट A =[8,9,10] जैसा है, तो आउटपुट P होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
n :=गिरफ्तारी का आकार
-
जी:=एआर [0], मैक्स_वल:=एआर [0]पी>
-
1 से n की सीमा में i के लिए, करें
-
जी:=जीसीडी (जी, एआर [i])
-
max_val :=अधिकतम max_val, arr[i]
-
-
कुल :=(max_val / g) - n
-
अगर योग विषम है, तो
-
वापसी 'पी'
-
-
वापसी 'क्यू'
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
from math import gcd def who_is_the_winner(arr) : n = len(arr) g = arr[0] max_val = arr[0] for i in range(1, n) : g = gcd(g, arr[i]) max_val = max(max_val, arr[i]) total = (max_val / g) - n if (total % 2 == 1) : return 'P' return 'Q' arr = [8,9,10] print(who_is_the_winner(arr))
इनपुट
[8,9,10]
आउटपुट
P