मान लीजिए कि हमारे पास सकारात्मक कैल्स कैंडीजकाउंट की एक सरणी है जहां कैंडीजकाउंट [i] हमारे पास ith प्रकार की कैंडीज की संख्या को दर्शाता है। हमारे पास क्वेरीज़ नामक एक और सरणी भी है जहां क्वेरीज़ [i] के तीन पैरामीटर हैं [पसंदीदा टाइप_आई, पसंदीदाडे_आई, डेलीकैप_आई]। हमारे कुछ नियम हैं:
-
हम 0 दिन से कैंडी खाना शुरू करते हैं।
-
हम किसी भी प्रकार की कैंडी नहीं खा सकते हैं जब तक कि हम पिछले i-1 प्रकार की सभी कैंडी नहीं खा लेते।
-
हमें प्रति दिन कम से कम एक कैंडी तब तक खानी चाहिए जब तक कि हम सभी खा न लें।
इन नियमों को बनाए रखते हुए, हमें प्रत्येक क्वेरी परिणामों के लिए बूलियन मानों की एक सरणी बनानी होगी और आई-वें प्रविष्टि सत्य है यदि हम किसी भी दिन दैनिक कैप_आई कैंडी से अधिक खाए बिना पसंदीदा दिन पर पसंदीदा टाइप_आई प्रकार की कैंडी खा सकते हैं। नियम 2 का पालन करके हम एक ही दिन विभिन्न प्रकार की कैंडी खा सकते हैं।
इसलिए, यदि इनपुट कैंडीजकाउंट =[7,4,5,3,8], क्वेरीज़ =[[0,2,2], [4,2,4], [2,13,100]] की तरह है, तो आउटपुट [सत्य, असत्य, सत्य] होगा क्योंकि
-
अगर हम दिन 0 और पहले दिन 2 टाइप-0 कैंडी खाते हैं, तो हम दिन में टाइप-0 कैंडी खाएंगे
-
हम प्रतिदिन अधिकतम 4 कैंडी खा सकते हैं। यदि हम प्रतिदिन 4 कैंडीज खाते हैं, तो हम 0 दिन में 4 टाइप-0 कैंडी और 1 टाइप-0, टाइप-1 कैंडीज 1 दिन खाएंगे। कैंडीज, इसलिए हम 2 दिन में टाइप 4 की कैंडी नहीं खा सकते हैं।
-
हम प्रतिदिन 1 कैंडी खा सकते हैं, हम 13वें दिन टाइप-2 की कैंडी खाएंगे।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
sumcandy :=एकल तत्व कैंडीजकाउंट के साथ एक सूची[0]
-
सूचकांक:=1
-
जबकि इंडेक्स <कैंडीज का आकारगिनें, करें
-
समकैंडी के अंत में (sumcandy[index-1] + candiesCount[index]) डालें
-
अनुक्रमणिका :=अनुक्रमणिका + 1
-
-
समकैंडी के अंत में 0 डालें
-
रेस:=एक नई सूची
-
प्रत्येक प्रश्न के लिए, करें
-
प्रकार:=प्रत्येक[0]
-
दिन:=प्रत्येक[1]
-
टोपी:=प्रत्येक[2]
-
अगर दिन+1> sumcandy[typ] या (दिन+1)*कैप <=sumcandy[typ-1], तो
-
रेस के अंत में गलत डालें
-
-
अन्यथा,
-
रेस के अंत में ट्रू डालें
-
-
-
रिटर्न रेस
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def solve(candiesCount, queries): sumcandy = [candiesCount[0]] index=1 while index < len(candiesCount): sumcandy.append(sumcandy[index-1] + candiesCount[index]) index+=1 sumcandy.append(0) res=[] for each in queries: typ=each[0] day=each[1] cap=each[2] if day+1 > sumcandy[typ] or (day+1)*cap <= sumcandy[typ-1]: res.append(False) else: res.append(True) return res candiesCount = [7,4,5,3,8] queries = [[0,2,2],[4,2,4],[2,13,100]] print(solve(candiesCount, queries))
इनपुट
[7,4,5,3,8], [[0,2,2],[4,2,4],[2,13,100]]
आउटपुट
[True, False, True]