 Open in App
Not now

# Maximum median possible by generating an Array of size N with sum X

• Last Updated : 24 Dec, 2021

Given two positive integers N and X. The task is to print the maximum median possible by generating an Array of size N with sum X

Examples:

Input: N = 1, X = 7
Output: 7
Explanation: Array can be: , median is the 1st element, i.e., 7.

Input: N = 7, X = 18
Output: 4
Explanation: One of the possible arrays can be: [0, 1, 2, 3, 4, 4, 4]. The median = ceil(n/2)th element  = ceil(7/2) = 5th element, i.e., 4.

Approach:  Consider that the median needs to be maximized so the greedy approach can be to make all the elements before the position of the median element as zero and equally divide the sum X among the rest of the elements.
Follow the below steps to solve the problem:

• If n = 1, print X.
• For n >= 2.
• Create a variable median_pos = ceil((double)(n)/2.0).
• Decrement median_pos, as to represent the index value.
• Create a variable median = X/(n-median_pos).
• Print median.

Below is the implementation for the above approach:

## C++

 `// C++ program for the above approach` `#include ` `using` `namespace` `std;`   `// Function to find the maximum median possible` `int` `maximizeMedian(``int` `n, ``int` `X)` `{` `    ``// If only 1 element present` `    ``if` `(n == 1) {` `        ``return` `X;` `    ``}` `    ``else` `{` `        ``// Position of median` `        ``int` `median_pos = ``ceil``((``double``)(n) / (2.0));` `        ``median_pos--;` `        ``int` `median = X / (n - median_pos);` `        ``return` `median;` `    ``}` `    ``return` `0;` `}`   `// Driver Code` `int` `main()` `{` `    ``int` `n = 1, X = 7;` `    ``cout << maximizeMedian(n, X);` `}`

## Java

 `// Java program for the above approach` `import` `java.util.*;` `public` `class` `GFG ` `{` `  `  `    ``// Function to find the maximum median possible` `    ``static` `int` `maximizeMedian(``int` `n, ``int` `X)` `    ``{` `      `  `        ``// If only 1 element present` `        ``if` `(n == ``1``) {` `            ``return` `X;` `        ``}` `        ``else` `{` `            ``// Position of median` `            ``int` `median_pos` `                ``= (``int``)Math.ceil((``double``)(n) / (``2.0``));` `            ``median_pos--;` `            ``int` `median = X / (n - median_pos);` `            ``return` `median;` `        ``}` `    ``}`   `    ``// Driver Code` `    ``public` `static` `void` `main(String args[])` `    ``{` `        ``int` `n = ``1``, X = ``7``;` `        ``System.out.println(maximizeMedian(n, X));` `    ``}` `}`   `// This code is contributed by Samim Hossain Mondal.`

## Python3

 `# Python code for the above approach`   `# Function to find the maximum median possible` `def` `maximizeMedian(n, X):`   `    ``# If only 1 element present` `    ``if` `(n ``=``=` `1``):` `        ``return` `X` `    ``else``:` `        ``# Position of median` `        ``median_pos ``=` `(n) ``/``/` `(``2.0``)` `        ``median_pos ``-``=` `1` `        ``median ``=` `X ``/``/` `(n ``-` `median_pos)` `        ``return` `median` `    ``return` `0`   `# Driver Code`   `n ``=` `1` `X ``=` `7` `print``(maximizeMedian(n, X))`   `# This code is contributed by gfgking`

## C#

 `// C# program for the above approach` `using` `System;` `class` `GFG ` `{` `  `  `    ``// Function to find the maximum median possible` `    ``static` `int` `maximizeMedian(``int` `n, ``int` `X)` `    ``{` `      `  `        ``// If only 1 element present` `        ``if` `(n == 1) {` `            ``return` `X;` `        ``}` `        ``else` `{` `            ``// Position of median` `            ``int` `median_pos` `                ``= (``int``)Math.Ceiling((``double``)(n) / (2.0));` `            ``median_pos--;` `            ``int` `median = X / (n - median_pos);` `            ``return` `median;` `        ``}` `    ``}`   `    ``// Driver Code` `    ``public` `static` `void` `Main()` `    ``{` `        ``int` `n = 1, X = 7;` `        ``Console.WriteLine(maximizeMedian(n, X));` `    ``}` `}`   `// This code is contributed by ukasp.`

## Javascript

 ``

Output

`7`

Time Complexity: O(1)
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up
Related Articles