একটি অ্যারে 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