ধরুন আমাদের কাছে ক্যান্ডি কাউন্টের ইতিবাচক ক্যালুসের একটি অ্যারে রয়েছে যেখানে ক্যান্ডি কাউন্ট[i] আমাদের কাছে থাকা ith ধরণের ক্যান্ডির সংখ্যা নির্দেশ করে। আমাদের আরও একটি অ্যারে আছে যাকে বলা হয় কোয়েরি যেখানে queries[i] এর তিনটি প্যারামিটার রয়েছে [favoriteType_i, favoriteDay_i, dailyCap_i]। আমাদের কিছু নিয়ম আছে:
-
আমরা 0 তম দিনে ক্যান্ডি খাওয়া শুরু করি।
-
আমরা আগের i-1 ধরনের সব ক্যান্ডি না খেয়ে থাকলে i টাইপের কোনো ক্যান্ডি খেতে পারি না।
-
যতক্ষণ না আমরা সেগুলি সব না খাই ততক্ষণ আমাদের প্রতিদিন অন্তত একটি মিছরি খেতে হবে৷
এই নিয়মগুলি বজায় রেখে, আমাদের প্রতিটি প্রশ্নের ফলাফলের জন্য বুলিয়ান মানগুলির একটি অ্যারে তৈরি করতে হবে এবং i-th এন্ট্রিটি সত্য হয় যদি আমরা যে কোনও দিনে DailyCap_i ক্যান্ডির চেয়ে বেশি না খেয়ে দিনে favoriteType_i টাইপের ক্যান্ডি খেতে পারি। নিয়ম 2 অনুসরণ করে আমরা একই দিনে বিভিন্ন ধরনের ক্যান্ডি খেতে পারি।
সুতরাং, যদি ইনপুট হয় candiesCount =[7,4,5,3,8], queries =[[0,2,2],[4,2,4],[2,13,100]], তাহলে আউটপুট হবে [সত্য, মিথ্যা, সত্য] কারণ
-
যদি আমরা 0 এবং 1 দিনে 2 টাইপ-0 ক্যান্ডি খাই, আমরা দিনে টাইপ-0 ক্যান্ডি খাব
-
আমরা প্রতিদিন সর্বোচ্চ 4টি ক্যান্ডি খেতে পারি। যদি আমরা প্রতিদিন 4টি ক্যান্ডি খাই, আমরা 0 তম দিনে 4 টাইপ-0 ক্যান্ডি খাব এবং 4 টাইপ-0, টাইপ-1 ক্যান্ডি 1 দিনে খাব। তারপর 2 দিন, আমরা কেবল 4 টাইপ-1, টাইপ-2 খেতে পারি। ক্যান্ডি, তাই আমরা ২য় দিনে টাইপ 4 এর ক্যান্ডি খেতে পারি না।
-
আমরা প্রতিদিন 1টি ক্যান্ডি খেতে পারি, আমরা 13 তম দিনে টাইপ-2 এর একটি ক্যান্ডি খাব৷
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
sumcandy :=একটি একক উপাদান ক্যান্ডি কাউন্ট সহ একটি তালিকা[0]
-
সূচক:=1
-
যখন সূচক
-
sumcandy শেষে সন্নিবেশ (sumcandy[index-1] + candiesCount[index])
-
index :=index + 1
-
-
সামক্যান্ডির শেষে 0 ঢোকান
-
res:=একটি নতুন তালিকা
-
প্রতিটি প্রশ্নের জন্য, করুন
-
টাইপ:=প্রতিটি[0]
-
দিন:=প্রতিটি[1]
-
cap:=প্রতিটি[2]
-
যদি day+1> sumcandy[typ] অথবা (day+1)*cap <=sumcandy[typ-1], তাহলে
-
res এর শেষে False ঢোকান
-
-
অন্যথায়,
-
res এর শেষে True সন্নিবেশ করুন
-
-
-
রিটার্ন রিটার্ন
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
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]