এই সমস্যাতে, আমাদের একই আকার n-এর দুটি অ্যারে arr1[] এবং arr2[] দেওয়া আছে। আমাদের কাজ হল দুটি অ্যারেতে সর্বোচ্চ গুণফল যোগফল খুঁজে বের করার প্রোগ্রাম তৈরি করা।
আমাদের দুটি অ্যারেতে সর্বোচ্চ গুণফল যোগফল খুঁজে বের করতে হবে। arr1-এর একটি উপাদান এবং arr2-এর অন্য একটি উপাদানের গুণফলের সর্বোচ্চ যোগফল বের করতে হবে।
arr1[] = {3, 5, 6}
arr2[] = {1, 4, 2}
37
সর্বোচ্চ গুণফল যোগফল: 6*4 + 5*2 + 3*1 = 24 + 10 + 3 = 37
এই সমস্যার একটি সহজ সমাধান হল arr1 এবং arr2-এর সব জোড়া উপাদান বের করে তাদের গুণফল যোগফল গণনা করা এবং সর্বোচ্চটি ফেরত দেওয়া।
একটি দক্ষ সমাধান হল দুটি অ্যারেতে সবচেয়ে বড় মানগুলোকে একসাথে গুণ করা। এটি সহজে করার জন্য দুটি অ্যারে নিম্নক্রমে সর্ট করে দিতে হবে। তারপর 0 থেকে n-1 ইনডেক্স পর্যন্ত দুটি অ্যারের উপাদানগুলো গুণ করে তাদের যোগফল ফেরত দিতে হবে।
#includeusing namespace std; int calcMaxSumOfProd(int arr1[], int arr2[], int n) { int maxSum = 0; sort(arr1, arr1 + n, greater ()); sort(arr2, arr2 + n, greater ()); for (int i = 0; i < n; i++) maxSum += (arr1[i] * arr2[i]); return maxSum; } int main() { int arr1[] = { 3, 5, 6 }; int arr2[] = { 1, 4, 2 }; int n = sizeof(arr1) / sizeof(arr1[0]); cout << "The maximum Sum of Products of two arrays is " << calcMaxSumOfProd(arr1, arr2, n); return 0; }
The maximum Sum of Products of two arrays is 37