মান লক্ষ্য করুন একটি n এলিমেন্টের অ্যারে A এবং আরেকটি মান t। i-তম দিন আমল A[i] সেকেন্ড কাজে ব্যয় করে। ফ্রি টাইমে সে বই পড়ে। পুরো বই পড়তে t সেকেন্ড লাগবে। আমাদের কত দিনে সে পুরো বই পড়া শেষ করবে তা বের করতে হবে।
তাই, যদি ইনপুট হয় A = [86400, 86398]; t = 2, তবে আউটপুট হবে ২, কারণ এক দিনে ৮৬৪০০ সেকেন্ড, এবং প্রথম দিন পুরোপুরি ব্যস্ত। দ্বিতীয় দিনে সে ২ সেকেন্ড পাবে বই পড়া শেষ করার জন্য।
ধাপসমূহ
এটি সমাধান করার জন্য, আমরা এই ধাপগুলো অনুসরণ করব −
cnt := 1
n := size of A
for initialize i := 0, when i < n, update (increase i by 1), do:
x := A[i]
t := t - 86400 - x
if t <= 0, then:
return cnt
(increase cnt by 1)
উদাহরণ
বेहतर বোঝার জন্য ইমপ্লিমেন্টেশন দেখি −
#include <bits/stdc++.h>
using namespace std;
int solve(vector<int> A, int t){
int cnt = 1;
int n = A.size();
for (int i = 0; i < n; i++){
int x = A[i];
t -= 86400 - x;
if (t <= 0){
return cnt;
}
++cnt;
}
}
int main(){
vector<int> A = { 86400, 86398 };
int t = 2;
cout << solve(A, t) << endl;
}
ইনপুট
{ 86400, 86398 }, 2
আউটপুট
2