मान लीजिए कि हमारे पास n तत्वों के साथ एक सरणी A है और दूसरा मान t है। सातवें दिन अमल काम में A[i] सेकंड बिताता है। खाली समय में वह एक किताब पढ़ता है। पूरी किताब को पूरा होने में t सेकंड का समय लगेगा। हमें यह पता लगाना होगा कि उसे पूरी किताब पढ़ने के लिए कितने दिनों की आवश्यकता होगी।
तो, अगर इनपुट ए =[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