मान लीजिए हमारे पास एक ऐरे candiesCount है जहां candiesCount[i] iवें प्रकार की कैंडी की संख्या दर्शाता है। हमारे पास एक और ऐरे queries है जहां queries[i] में तीन पैरामीटर [favoriteType_i, favoriteDay_i, dailyCap_i] होते हैं। हमारे कुछ नियम हैं:
- हम दिन 0 से कैंडी खाना शुरू करते हैं।
- हम प्रकार
iकी कोई कैंडी नहीं खा सकते जब तक हमने पिछलेi-1प्रकार की सभी कैंडी न खा ली हों। - हमें प्रति दिन कम से कम एक कैंडी खानी होगी जब तक हम उन सभी को न खा लें।
इन नियमों को बनाए रखते हुए, हमें प्रत्येक क्वेरी के परिणाम के लिए बूलियन मानों का एक ऐरे बनाना है और iवां एंट्री true है यदि हम favoriteDay_i दिन पर favoriteType_i प्रकार की कैंडी खा सकते हैं बिना किसी दिन dailyCap_i से अधिक कैंडी खाए। हम एक ही दिन अलग-अलग प्रकार की कैंडी खा सकते हैं, नियम 2 का पालन करते हुए।
उदाहरण के लिए, यदि इनपुट है candiesCount = [7,4,5,3,8], queries = [[0,2,2],[4,2,4],[2,13,100]], तो आउटपुट [true,false,true] होगा क्योंकि:
- यदि हम दिन 0 और दिन 1 पर 2 टाइप-0 कैंडी खाते हैं, तो हम दिन 2 पर टाइप-0 कैंडी खाएंगे
- हम प्रति दिन अधिकतम 4 कैंडी खा सकते हैं। यदि हम हर दिन 4 कैंडी खाते हैं, तो हम दिन 0 पर 4 टाइप-0 कैंडी और दिन 1 पर 4 टाइप-0, टाइप-1 कैंडी खाएंगे। फिर दिन 2 पर, हम केवल 4 टाइप-1, टाइप-2 कैंडी खा सकते हैं, इसलिए हम दिन 2 पर टाइप 4 की कैंडी नहीं खा सकते।
- हम प्रति दिन 1 कैंडी खा सकते हैं, हम दिन 13 पर टाइप-2 की कैंडी खाएंगे।
समाधान के चरण
sumcandy := [candiesCount[0]](एकल तत्व वाली सूची)index := 1while index < len(candiesCount):sumcandy.append(sumcandy[index-1] + candiesCount[index])index := index + 1
sumcandy.append(0)res := [](नई सूची)queriesमें प्रत्येकeachके लिए:typ := each[0]day := each[1]cap := each[2]- यदि
day+1 > sumcandy[typ]या(day+1)*cap <= sumcandy[typ-1], तो:res.append(False)
- अन्यथा:
res.append(True)
resवापस करें
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
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]