ধরুন আমাদের n উপাদান সহ একটি অ্যারে A আছে এবং আরেকটি মান t আছে। প্রথম দিনে অমল কাজে A[i] সেকেন্ড ব্যয় করে। অবসর সময়ে তিনি একটি বই পড়েন। পুরো বইটি সম্পূর্ণ হতে t সেকেন্ড সময় লাগবে। আমাদের খুঁজে বের করতে হবে তাকে কত দিন সম্পূর্ণ বইটি পড়তে হবে।
সুতরাং, যদি ইনপুটটি A =[86400, 86398] এর মত হয়; t =2, তাহলে আউটপুট হবে 2, কারণ একদিনে 86400 সেকেন্ড আছে, এবং প্রথম দিন সম্পূর্ণভাবে ব্লক করা হয়েছে। দ্বিতীয় দিনে তিনি বইটি সম্পূর্ণ করতে 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