हमें पूर्णांकों की एक सरणी दी गई है। लक्ष्य अभिव्यक्ति के मूल्य को अधिकतम करना है -
एआर [जे] -एआर [आई] + एआर [एल] -एआर [के]; i
हम सभी तत्वों का पता लगाकर ऐसा करेंगे और व्यंजक के मूल्य की गणना करेंगे। यदि यह अब तक अधिकतम पाया गया है तो इसे स्टोर करें और अंत में वापस आएं।
स्पष्टीकरण - i
arr[j]-arr[i]+arr[l]-arr[k]=2-1+4-3=1+1=2
स्पष्टीकरण − i
arr[j]-arr[i]+arr[l]-arr[k]=5-5+5-5=0
पूर्णांक सरणी a[] संख्याओं को संग्रहीत करता है।
फ़ंक्शन maxSum(int arr[], int n) इनपुट के रूप में सरणी और इसकी लंबाई n लेता है और arr[j]-arr[i]+arr[l]-arr[k] का अधिकतम मान लौटाता है जैसे कि i
वेरिएबल योग का उपयोग arr[j]-arr[i] और arr[l]-arr[k] के योग को स्टोर करने के लिए किया जाता है।
प्रारंभिक अधिकतम राशि के रूप में maxx=arr[0] प्रारंभ करें।
i=0, j=1,k=2, l=3 से i
i,j,k,l में प्रत्येक अनुक्रमणिका के लिए arr[j]-arr[i]+arr[l]-arr[k] की गणना करें और योग में स्टोर करें
यदि वर्तमान योग>=अधिकतम अद्यतन अधिकतम।
अंत में वांछित परिणाम के रूप में अधिकतम वापसी करें।इनपुट
arr[]= { 1,2,3,4 }
आउटपुट
Maximum value for above expression is : 2
इनपुट
arr[]= { 5,5,5,5,5 }
आउटपुट
Maximum value for above expression is : 0
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
उदाहरण
#include <bits/stdc++.h>
using namespace std;
// function to maximize the sum of selected numbers
int maximizeSum(int arr[], int n) {
int sum=0;
int maxx=arr[0];
for(int i=0;i<n-3;i++)
for(int j=i+1;j<n-2;j++)
for(int k=j+1;k<n-1;k++)
for(int l=k+1;l<n;l++){
sum=arr[j]-arr[i]+arr[l]-arr[k];
if(sum>=maxx)
maxx=sum;
}
return maxx;
}
int main(){
int a[] = {5, 3, 9, 2, 20};
int n = sizeof(a) / sizeof(a[0]);
cout <<"Maximized value is :"<< maximizeSum(a, n);
return 0;
}
आउटपुट
Maximized value is :24