Related Articles
Find minimum value of the expression by choosing K elements from given array
• Difficulty Level : Hard
• Last Updated : 17 Apr, 2020

Given an array of integers arr of size N, the task is to find the minimum possible of the expression by choosing exactly K(≤ N) integers form given array arr. Let say if choosen elements are stored in array B (B1, B2, B3…..Bk) then value of expression: Examples:

Input : arr[] = {2, 0, 9, 5}, k = 2
Output : 8
Let say, choosen elements are {2, 0}, then x = 8, which is minimum possible

Input : arr[] = {4, 21, 5, 3, 8}, k = 3
Output : 200

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach :
The above expression can be simplified as:

• • • • • So, all we need to do is select the k smallest elements from the array and solve the expression.

Below is the implementation of the above approach:

## C++

 // CPP program to find the minimum possible of the expression   // by choosing exactly K(? N) integers form given array arr  #include  using namespace std;     // Function to find the minimum possible of the expression   // by choosing exactly K(? N) integers form given array arr  int minimumValue(int arr[], int n, int k)  {         // Sorting the array for least k element selection      sort(arr, arr + n);         int answer = 0;         // Select first k elements from sorted array      for (int i = 0; i < k; i++)          answer += arr[i] * arr[i];         // Return value of solved expression      return answer * (2 * k - 2);  }     // Driver code  int main()  {      int arr[] = { 4, 21, 5, 3, 8 }, k = 3;             int n = sizeof(arr) / sizeof(arr);             // Function call      cout << minimumValue(arr, n, k);             return 0;  }

## Java

 // JAVA program to find the minimum possible of the expression   // by choosing exactly K(? N) integers form given array arr    import java.util.*;     class GFG{      // Function to find the minimum possible of the expression   // by choosing exactly K(? N) integers form given array arr   static int minimumValue(int arr[], int n, int k)   {          // Sorting the array for least k element selection       Arrays.sort(arr);          int answer = 0;          // Select first k elements from sorted array       for (int i = 0; i < k; i++)           answer += arr[i] * arr[i];          // Return value of solved expression       return answer * (2 * k - 2);   }      // Driver code   public static void main(String[] args)   {       int arr[] = { 4, 21, 5, 3, 8 }, k = 3;              int n = arr.length;              // Function call       System.out.print(minimumValue(arr, n, k));       }  }      // This code is contributed by Rajput-Ji

## Python3

 # Python program to find the minimum   # possible of the expression by choosing  # exactly K(? N) integers form given array arr      # Function to find the minimum   # possible of the expression by   # choosing exactly K(? N) integers   # form given array arr  def minimumValue(arr, n, k):         # Sorting the array for least k element selection      arr.sort();         answer = 0;         # Select first k elements from sorted array      for i in range(k):          answer += arr[i] * arr[i];         # Return value of solved expression      return answer * (2 * k - 2);     # Driver code  if __name__ == '__main__':      arr = [ 4, 21, 5, 3, 8 ];      k = 3;         n = len(arr);         # Function call      print(minimumValue(arr, n, k));     # This code is contributed by Rajput-Ji

## C#

 // C# program to find the minimum possible of the expression   // by choosing exactly K(? N) integers form given array arr    using System;     class GFG{       // Function to find the minimum possible of the expression   // by choosing exactly K(? N) integers form given array arr   static int minimumValue(int []arr, int n, int k)   {           // Sorting the array for least k element selection       Array.Sort(arr);           int answer = 0;           // Select first k elements from sorted array       for (int i = 0; i < k; i++)           answer += arr[i] * arr[i];           // Return value of solved expression       return answer * (2 * k - 2);   }       // Driver code   public static void Main(String[] args)   {       int []arr = { 4, 21, 5, 3, 8 };      int k = 3;               int n = arr.Length;               // Function call       Console.Write(minimumValue(arr, n, k));       }  }      // This code is contributed by 29AjayKumar

Output:

200 My Personal Notes arrow_drop_up
Recommended Articles
Page :