Minimum sum of product of elements of pairs of the given array

Given an array arr[] of even number of element N in it. The task is to form N/2 pairs such that sum of product of elements in those pairs is minimum.

Examples

Input: arr[] = { 1, 6, 3, 1, 7, 8 }
Output: 270
Explanation:
The pair formed are {1, 1}, {3, 6}, {7, 8}
Product of sum of these pairs = 2 * 9 * 15 = 270

Input: arr[] = {2, 3, 90, 12}
Output: 510
Explanation:
Pairs should be created in this way {2, 3}, {12, 90}
Product of sum of these pairs = 5*112 = 510

Approach:



Below is the implementation of the above approach:

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to find the minimum
// product of sum of pair of element
// in array arr[]
#include "bits/stdc++.h"
using namespace std;
  
// Function to find the minimum
// product
int minimumProduct(int* arr, int n)
{
  
    // Sort the array using STL
    // sort() function
    sort(arr, arr + n);
  
    // Intialise product to 1
    int product = 1;
  
    for (int i = 0; i < n; i += 2) {
  
        // Find product of sum of
        // all pairs
        product *= (arr[i] + arr[i + 1]);
    }
  
    // Return the product
    return product;
}
  
// Driver code
int main()
{
    int arr[] = { 1, 6, 3, 1, 7, 8 };
    int n = sizeof(arr) / sizeof(arr[0]);
  
    // Function call to find product
    cout << minimumProduct(arr, n) << endl;
    return 0;
}
chevron_right

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to find the minimum
// product of sum of pair of element
// in array arr[]
import java.util.*;
  
class GFG{
   
// Function to find the minimum
// product
static int minimumProduct(int[] arr, int n)
{
   
    // Sort the array using STL
    // sort() function
    Arrays.sort(arr);
   
    // Intialise product to 1
    int product = 1;
   
    for (int i = 0; i < n; i += 2) {
   
        // Find product of sum of
        // all pairs
        product *= (arr[i] + arr[i + 1]);
    }
   
    // Return the product
    return product;
}
   
// Driver code
public static void main(String[] args)
{
    int arr[] = { 1, 6, 3, 1, 7, 8 };
    int n = arr.length;
   
    // Function call to find product
    System.out.print(minimumProduct(arr, n) +"\n");
}
}
  
// This code is contributed by sapnasingh4991
chevron_right

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 program to find the minimum
# product of sum of pair of element
# in array arr[]
  
# Function to find the minimum
# product
def minimumProduct(arr, n):
  
    # Sort the array using STL
    # sort() function
    arr = sorted(arr)
  
    # Intialise product to 1
    product = 1
  
    for i in range(0, n, 2):
  
        # Find product of sum of
        # all pairs
        product *= (arr[i] + arr[i + 1])
  
    # Return the product
    return product
  
# Driver code
  
arr = [1, 6, 3, 1, 7, 8]
n = len(arr)
  
# Function call to find product
print(minimumProduct(arr, n))
  
# This code is contributed by mohit kumar 29
chevron_right

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# program to find the minimum
// product of sum of pair of element
// in array arr[]
using System; 
  
class GFG { 
  
    // Function to find the minimum
    // product
    static int minimumProduct(int[] arr, int n)
    {
      
        // Sort the array 
        // sort() function
        Array.Sort(arr);
      
        // Intialise product to 1
        int product = 1;
      
        for (int i = 0; i < n; i += 2) {
      
            // Find product of sum of
            // all pairs
            product *= (arr[i] + arr[i + 1]);
        }
      
        // Return the product
        return product;
    }
      
    // Driver code
    static void Main() 
    {
        int[] arr = new int[] { 1, 6, 3, 1, 7, 8 };
        int n = arr.Length;
      
        // Function call to find product
        Console.Write(minimumProduct(arr, n));
    }
}
  
// This code is contributed by shubhamsingh10
chevron_right

Output:
270

Time Complexity: O(N*log N)

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.





Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.



Article Tags :