# Median after K additional integers

Given an array of n integers. We are allowed to add k additional integer in the array and then find the median of the resultant array. We can choose any k values to be added.
Constraints:

```k < n
n + k is always odd.```

Examples :

```Input : arr[] = { 4, 7 }
k = 1
Output : 7
Explanation : One of the possible solutions
is to add 8 making the array [4, 7, 8], whose
median is 7

Input : arr[] = { 6, 1, 1, 1, 1 }
k = 2
Output : 1
Explanation : No matter what elements we add
to this array, the median will always be 1```

We first sort the array in increasing order. Since value of k is less than n and n+k is always odd, we can always choose to add k elements that are greater than the largest element of an array, and (n+k)/2th element is always a median of the array.

## C++

 `// CPP program to find median of an array when ` `// we are allowed to add additional K integers ` `// to it. ` `#include ` `using` `namespace` `std; ` ` `  `// Find median of array after adding k elements ` `void` `printMedian(``int` `arr[], ``int` `n, ``int` `K) ` `{ ` `    ``// sorting  the array in increasing order. ` `    ``sort(arr, arr + n); ` ` `  `    ``// printing the median of array. ` `    ``// Since n + K is always odd and K < n,  ` `    ``// so median of array always lies in  ` `    ``// the range of n. ` `    ``cout << arr[(n + K) / 2]; ` `} ` ` `  `// driver function ` `int` `main() ` `{ ` `    ``int` `arr[] = { 5, 3, 2, 8 }; ` `    ``int` `k = 3; ` `    ``int` `n = ``sizeof``(arr) / ``sizeof``(arr[0]); ` `    ``printMedian(arr, n, k); ` `    ``return` `0; ` `} `

## Java

 `// Java program to find median of an array when ` `// we are allowed to add additional K integers ` `// to it. ` `import` `java.util.Arrays; ` ` `  `class` `GFG { ` `     `  `    ``// Find median of array after adding k elements ` `    ``static` `void` `printMedian(``int` `arr[], ``int` `n, ``int` `K) ` `    ``{ ` `         `  `        ``// sorting the array in increasing order. ` `        ``Arrays.sort(arr); ` `     `  `        ``// printing the median of array. ` `        ``// Since n + K is always odd and K < n,  ` `        ``// so median of array always lies in  ` `        ``// the range of n. ` `        ``System.out.print(arr[(n + K) / ``2``]); ` `    ``} ` `     `  `    ``//Driver code ` `    ``public` `static` `void` `main (String[] args) ` `    ``{ ` `         `  `        ``int` `arr[] = { ``5``, ``3``, ``2``, ``8` `}; ` `        ``int` `k = ``3``; ` `        ``int` `n = arr.length; ` `         `  `        ``printMedian(arr, n, k); ` `    ``} ` `} ` ` `  `// This code is contributed by Anant Agarwal. `

## Python3

 `# Python3 code to find median of an  ` `# array when we are allowed to add ` `# additional K integers to it. ` ` `  `# Find median of array after  ` `# adding k elements ` `def` `printMedian (arr, n, K): ` `     `  `    ``# sorting the array in  ` `    ``# increasing order. ` `    ``arr.sort() ` `     `  `    ``# printing the median of array. ` `    ``# Since n + K is always odd  ` `    ``# and K < n, so median of  ` `    ``# array always lies in  ` `    ``# the range of n. ` `    ``print``( arr[``int``((n ``+` `K) ``/` `2``)]) ` ` `  `# driver function ` `arr ``=` `[ ``5``, ``3``, ``2``, ``8` `] ` `k ``=` `3` `n ``=` `len``(arr) ` `printMedian(arr, n, k) ` ` `  `# This code is contributed by "Sharad_Bhardwaj". `

## C#

 `// C# program to find median of an array when ` `// we are allowed to add additional K integers ` `// to it. ` `using` `System; ` ` `  `class` `GFG ` `{ ` `    ``// Find median of array after adding k elements ` `    ``static` `void` `printMedian(``int` `[]arr, ``int` `n, ``int` `K) ` `    ``{ ` `        ``// sorting  the array in increasing order. ` `        ``Array.Sort(arr); ` `      `  `        ``// printing the median of array. ` `        ``// Since n + K is always odd and K < n,  ` `        ``// so median of array always lies in  ` `        ``// the range of n. ` `        ``Console.Write(arr[(n + K) / 2]); ` `    ``} ` `     `  `    ``//Driver code ` `    ``public` `static` `void` `Main () ` `    ``{ ` `    ``int` `[]arr = { 5, 3, 2, 8 }; ` `        ``int` `k = 3; ` `        ``int` `n = arr.Length; ` `        ``printMedian(arr, n, k); ` `    ``} ` `} ` ` `  `// This code is contributed by  anant321. `

## PHP

 ` `

## Javascript

 ` `

Output :

`8`

Time complexity: O(nlog(n))
Auxiliary Space: O(1)
If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.