Find minimum value of the expression by choosing K elements from given array

• Difficulty Level : Hard
• Last Updated : 24 Nov, 2021

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 chosen elements are stored in array B (B1, B2, B3…..Bk) then value of expression: Examples:

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

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

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

Javascript



Output:

200

Time Complexity: O(n * log n)

Auxiliary Space: O(1)

My Personal Notes arrow_drop_up
Recommended Articles
Page :