इस समस्या में, हमें N तत्वों की एक सरणी दी गई है। हमारा कार्य समय निकालने के लिए सरणी से अधिकतम निष्कासन का पता लगाना है>=प्रतीक्षा समय।
तो, यहां हम सरणी के तत्वों को हटा देंगे। सरणी के तत्व का मान निष्कासन समय (सरणी से तत्व को निकालने में लगने वाला समय) दर्शाता है।
तत्व का एक प्रतीक्षा समय होता है जो वह समय होता है जब तक इसे हटा दिए जाने तक प्रतीक्षा करनी होगी।
तत्व को केवल तभी हटाया जा सकता है जब हटाने का समय उसके द्वारा प्रतीक्षा किए जाने वाले समय से अधिक हो।
हमें उन तत्वों की अधिकतम संख्या ज्ञात करनी है जिन्हें सरणी से हटाया जा सकता है। सरणी में तत्वों का क्रम आवश्यकता के अनुसार बदला जा सकता है।
आइए समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट - सरणी ={12, 3, 11, 7, 5}
आउटपुट -2
स्पष्टीकरण -
सबसे पहले, हम सरणी को आरोही क्रम में पुन:व्यवस्थित करेंगे -
सरणी {3, 5, 7,11, 12}
. होगीअब, हम एक-एक करके तत्वों को हटा देंगे
3 को निकाला जा रहा है - प्रतीक्षा समय 0 है जो हटाने के समय (3) से कम है। हटाना संभव है।
5 को निकाला जा रहा है - प्रतीक्षा समय 3 है जो हटाने के समय (5) से कम है। हटाना संभव है।
7 को निकाला जा रहा है - प्रतीक्षा समय 8 है जो हटाने के समय (7) से अधिक है। हटाना संभव नहीं है।
इस समस्या को हल करने के लिए, हम हटाए जाने वाले तत्वों को एक-एक करके छाँटेंगे और जाँचेंगे।
एल्गोरिदम
Step 1: Sort the array in ascending order. Step 2: For every element in the array, Do: Step 3: Find waiting Time (sum of removal time of all elements before the element). Step 4: if (waiting time <= removal time ) step 4.1: remove the element and increase the remove count. Step 5: else: break. Step 6: print the number of elements removed.
उदाहरण
हटाने का समय होने पर सरणी से अधिकतम निष्कासन खोजने का कार्यक्रम>=C++ में प्रतीक्षा समय
#include <bits/stdc++.h> using namespace std; int countRemovedElements(int arr[], int n){ sort(arr, arr + n); int removeCount = 0; int waitTime = 0; for (int i = 0; i < n; i++) { if (arr[i] >= waitTime) { removeCount++; waitTime += arr[i]; } else break; } return removeCount; } int main(){ int arr[] = { 12, 3, 11, 7 , 5 }; int n = sizeof(arr) / sizeof(arr[0]); cout<<"The maximum number of elements that can be removed from the array is "<<countRemovedElements(arr, n); return 0; }
आउटपुट
The maximum number of elements that can be removed from the array is 2