কম্পিউটার

n দিন পর গাছের উচ্চতা খুঁজে পেতে C++ কোড


ধরুন আমাদের n উপাদান সহ একটি অ্যারে A আছে। A-তে 0 বা 1 উপাদান আছে। একটি গাছ আছে। পরপর n দিনে, যদি A[i] 0 হয় তবে এটিকে জল দেওয়া হয় না, যদি এটি 1 হয় তবে এটি জল দেওয়া হয়, ফুলটি নিম্নলিখিত পদ্ধতিতে বৃদ্ধি পায় -

  • টানা দুই দিন গাছে পানি না দিলে তা মারা যায়

  • যদি গাছটিকে প্রথম দিনে জল দেওয়া হয় তবে এটি 1 সেন্টিমিটার বৃদ্ধি পায়

  • যদি গাছটিকে পরপর ith এবং (i+1) তম দিনে জল দেওয়া হয়, তবে এটি 1 সেন্টিমিটারের পরিবর্তে 5 সেমি বৃদ্ধি পায়।

  • যদি দিনে জল না দেওয়া হয় তবে এটি বাড়বে না।

শুরুতে গাছটি 1 সেমি লম্বা হয়। n দিন পর গাছের উচ্চতা বের করতে হবে। যদি এটি মারা যায়, তবে -1 ফেরত দিন।

সুতরাং, যদি ইনপুটটি A =[0, 1, 1] এর মতো হয়, তবে আউটপুট হবে 7, কারণ প্রথম দিনে, এটি বৃদ্ধি পাবে না, তাই উচ্চতা 1, দ্বিতীয় দিনের পরে, উচ্চতা 2 হবে, তারপর তৃতীয় দিনের পর তা হবে 2 + 5 =7।

পদক্ষেপ

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

r := 1
y := 0
n := size of A
for initialize i := 0, when i < n, update (increase i by 1), do:
   x := A[i]
   if r is same as -1, then:
      Ignore following part, skip to the next iteration
   if x is non-zero and y is non-zero, then:
      r := r + 5
   otherwise when x is non-zero, then:
      (increase r by 1)
   otherwise when not x is non-zero and not y is non-zero and i > 0, then:
      r := -1
   y := x
return r

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

#include <bits/stdc++.h>
using namespace std;
int solve(vector<int> A){
   int r = 1;
   int y = 0;
   int n = A.size();
   for (int i = 0; i < n; ++i){
      int x = A[i];
      if (r == -1)
         continue;
      if (x && y)
         r += 5;
      else if (x)
         ++r;
      else if (!x && !y && i > 0)
         r = -1;
      y = x;
   }
   return r;
}
int main(){
   vector<int> A = { 0, 1, 1 };
   cout << solve(A) << endl;
}

ইনপুট

{ 0, 1, 1 }

আউটপুট

7

  1. C++ এ একটি গাছের মধ্যে সবচেয়ে বড় সাবট্রি সমষ্টি খুঁজুন

  2. C++ এ বাইনারি গাছের পাতা খুঁজুন

  3. C++ এ একটি গাছের সর্বোচ্চ গভীরতা বা উচ্চতা খুঁজে বের করার জন্য একটি প্রোগ্রাম লিখুন

  4. C++ এ নিচের বাম গাছের মান খুঁজুন