কম্পিউটার টিউটোরিয়াল

সি++ কোড: n দিন পর গাছের উচ্চতা বের করুন

একটি অ্যারে A দেওয়া আছে n উপাদানের সাথে, উপাদানগুলো ০ বা ১। একটি গাছ আছে। liên tục n দিন ধরে: A[i]=0 হলে সেচা হয়নি, ১ হলে সেচা হয়েছে। গাছের বৃদ্ধি:

  • লगাতার দুই দিন সেচা না হলে গাছ মরে যায়
  • i-তম দিন সেচা হলে ১ সেমি বড় হয়
  • i-তম এবং (i+1)-তম দিন লগাতার সেচা হলে ৫ সেমি বড় হয় (১+১ না হয়ে)
  • সেচা না হলে বড় হয় না

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

উদাহরণ

A = [0, 1, 1] → আউটপুট: 7
ব্যাখ্যা: ১ম দিন বড় হয়নি (১), ২য় দিন ১ সেমি বড় (২), ৩য় দিন ৫ সেমি বড় (৭)।

সমাধানের ধাপসমূহ

r := 1, y := 0
n := A-এর সাইজ
for i := 0 to n-1:
    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

সি++ কোড উদাহরণ

#include <bits/stdc++.h>
using namespace std;

int solve(vector<int> A) {
    int r = 1, y = 0, 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++-এ Find Leaves of Binary Tree: বাইনারি ট্রি থেকে লีফ নোডগুলো লেভেল অনুযায়ী সংগ্রহ করা

  3. C++-এ ট্রির ম্যাক্সিমাম ডেপথ বা হাইট বের করার প্রোগ্রাম

  4. ট্রির শেষ সারির বামপাশের মান C++-এ