सकारात्मक पूर्णांकों की एक सरणी गिरफ्तारी [] को देखते हुए। लक्ष्य arr[ ] के उप-सरणीयों की संख्या का पता लगाना है जिनके तत्वों का औसत arr[ ] के बाकी तत्वों के औसत से अधिक है जो इसमें मौजूद नहीं हैं।
उदाहरण के लिए
इनपुट
arr[ ] = { 3, 2, 4 }
आउटपुट
Count of number of sub-arrays such that the average of elements present in the sub−array is greater than that do not present in the sub−array are: 2
स्पष्टीकरण
The subarrays are − [ 3 ], [ 2 ], [ 4 ], [ 3,2 ], [ 2,4 ], [ 3,2,4 ]. Average of [ 4 ] is 4 which is more than the average of [ 2,3 ]. Average of [ 3,2,4 ] is 3 which is more than the average of [ ]के औसत से अधिक है
इनपुट
arr[ ] = { 3, 3, 3 }
आउटपुट
Count of number of sub−arrays such that the average of elements present in the sub−array is greater than that do not present in the sub−array are: 1
स्पष्टीकरण
The subarrays are − [ 3 ], [ 3 ], [ 3 ], [ 3,3 ], [ 3,3 ], [ 3,3,3 ]. Average of [ 3,3,3 ] is 3 which is more than the average of [ ]. के औसत से अधिक है
नीचे दिए गए कार्यक्रम में उपयोग किया गया दृष्टिकोण इस प्रकार है -
इस दृष्टिकोण में एक उपसर्ग योग सरणी बनाएं जो सूचकांक i तक तत्वों के योग को new_arr [i] में संग्रहीत करेगा। अब हमारे पास पिछले तत्व तक का योग है, फिर arr[i] तक योग की गणना करें और तत्वों की गणना j−i+1 के रूप में करें और औसत की गणना करें।
-
इनपुट के रूप में एक सरणी arr[] लें।
-
फ़ंक्शन गिनती (int arr [], int आकार) arr [] लेता है और उप-सरणी की गिनती देता है जैसे कि उप-सरणी में मौजूद तत्वों का औसत उप-सरणी में मौजूद नहीं होने से अधिक होता है।
-
पिछले इंडेक्स तत्वों तक योग को स्टोर करने के लिए एक सरणी new_arr[size] लें।
-
i=0 से i<आकार पर जाएं और new_arr[i] को new_arr[i−1]+arr[i−1] के साथ सेट करें।
-
अब दो for लूप का उपयोग करके new_arr[ ] को पार करें।
-
अब कुल_1 की गणना पिछले उपसरणियों के योग के रूप में करें। और इसमें मौजूद तत्व count_1 के रूप में।
-
अगले उप-सरणी और उसमें मौजूद तत्वों के योग के रूप में कुल_2 की गणना करें।
-
औसत की गणना check_1 =Total_1 / count_1 के रूप में करें; और चेक_2 =कुल_2 /गिनती_2;
-
यदि औसत चेक_1> चेक_2 तो वृद्धि की गणना करें।
-
लूप के अंत में परिणाम के रूप में वापसी की गणना करें।
उदाहरण
#include <bits/stdc++.h> using namespace std; int count(int arr[], int size){ int count = 0; int new_size = size + 1; int new_arr[new_size] = { 0 }; for (int i = 1; i < new_size; i++){ new_arr[i] = new_arr[i − 1] + arr[i − 1]; } for (int i = 1; i < new_size; i++){ for (int j = i; j < new_size; j++){ int total_1 = new_arr[j] − new_arr[i − 1]; int count_1 = j − i + 1; int total_2 = new_arr[size] − total_1; int count_2 = 0; if((size − count_1) == 0){ count_2 = 1; } else { count_2 = size − count_1; } int check_1 = total_1 / count_1; int check_2 = total_2 / count_2; if (check_1 > check_2){ count++; } } } return count; } int main(){ int arr[] = { 2, 6, 2, 4 }; int size = sizeof(arr) / sizeof(arr[0]); cout<<"Count of number of sub−arrays such that the average of elements present in the sub−array "<< "is greater than that not present in the sub−array are: "<<count(arr, size); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Count the number of sub−arrays such that the average of elements present in the subarrayis greater than that not present in the sub-array are: 6