दो समान आकार की सरणियाँ दी गई हैं। एक-एक तत्व लेकर गुणा करने पर अधिकतम योग प्राप्त करने के लिए दोनों सरणियों को सॉर्ट करें और संगत तत्वों को गुणा करें।
उदाहरण: A={1,2,3}, B={4,5,1} → सॉर्ट करने पर A={1,2,3}, B={1,4,5} → योग = 1*1 + 2*4 + 3*5 = 24।
C++ कार्यान्वयन
#include <bits/stdc++.h>
using namespace std;
int maximumSOP(int *a, int *b, int n) {
int sop = 0;
sort(a, a + n);
sort(b, b + n);
for (int i = 0; i < n; i++) sop += a[i] * b[i];
return sop;
}
int main() {
int A[] = {1, 2, 3};
int B[] = {4, 5, 1};
int n = sizeof(A) / sizeof(A[0]);
cout << maximumSOP(A, B, n);
return 0;
}
आउटपुट
24