কম্পিউটার

পাইথনে আমাদের প্রিয় দিনে আমরা প্রিয় ক্যান্ডি খেতে পারি কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম


ধরুন আমাদের কাছে ক্যান্ডি কাউন্টের ইতিবাচক ক্যালুসের একটি অ্যারে রয়েছে যেখানে ক্যান্ডি কাউন্ট[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]

  1. পাইথনে নোড অদলবদল করে দুটি গাছ তৈরি করা যায় কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম

  2. আমরা পাইথনে সমস্ত কোর্স করতে পারি কি না তা পরীক্ষা করার জন্য প্রোগ্রাম

  3. পাইথনে একটি স্ট্রিং 1-থেকে-1 ম্যাপ করা যায় কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম

  4. পাইথন প্রোগ্রাম একটি তালিকা খালি কি না পরীক্ষা করতে?