मान लीजिए कि हमारे पास n तत्वों के साथ एक सरणी A है, और सभी तत्व अलग हैं। n ऑनसाइट फाइनलिस्ट हैं जो एक कंपनी में शामिल हो सकते हैं, उनकी योग्यता रैंक ए में मौजूद हैं। हमें उन प्रतियोगियों की न्यूनतम संभव संख्या का पता लगाना है जिन्होंने अंतिम दौर में ऑनसाइट प्रतिस्पर्धा करने के लिए निमंत्रण को अस्वीकार कर दिया। ऐसे 25 व्यक्ति होंगे जिनमें से कुछ ने स्वीकार किया है या कुछ ने अस्वीकार कर दिया है।
तो, अगर इनपुट ए =[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28], तो आउटपुट 3 होगा, क्योंकि 1, 13वें और 27वें में गिरावट आई होगी।
कदम
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
mx := 0 for initialize i := 0, when i < size of A, update (increase i by 1), do: mx := maximum of mx and A[i] return maximum of mx - 25 and 0
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
#include <bits/stdc++.h> using namespace std; int solve(vector<int> A){ int mx = 0; for (int i = 0; i < A.size(); i++) mx = max(mx, A[i]); return max(mx - 25, 0); } int main(){ vector<int> A = { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28 }; cout << solve(A) << endl; }
इनपुट
{ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28 }
आउटपुट
3