Mediana máxima posible generando un Array de tamaño N con suma X

Dados dos enteros positivos N y X . La tarea es imprimir la mediana máxima posible generando un Array de tamaño N con suma X

Ejemplos: 

Entrada: N = 1, X = 7
Salida: 7
Explicación: La array puede ser: [7], la mediana es el primer elemento, es decir, 7.

Entrada: N = 7, X = 18
Salida: 4
Explicación: Una de las posibles arrays puede ser: [0, 1, 2, 3, 4, 4, 4]. La mediana = ceil(n/2)th elemento = ceil(7/2) = 5th elemento, es decir, 4.

 

Enfoque:  considere que la mediana debe maximizarse, por lo que el enfoque codicioso puede ser hacer que todos los elementos antes de la posición del elemento mediano sean cero y dividir equitativamente la suma X entre el resto de los elementos.
Siga los pasos a continuación para resolver el problema:

  • Si n = 1 , imprima X.
  • Para n >= 2.
  • Cree una variable mediana_pos = ceil((doble)(n)/2.0).
  • Decremente mediana_pos para representar el valor del índice.
  • Cree una variable mediana = X/(n-median_pos) .
  • Imprima la mediana .

A continuación se muestra la implementación del enfoque anterior:

C++

// C++ program for the above approach
#include <bits/stdc++.h>
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

<script>
       // JavaScript code for the above approach
 
       // Function to find the maximum median possible
       function maximizeMedian(n, X)
       {
        
           // If only 1 element present
           if (n == 1) {
               return X;
           }
           else
           {
            
               // Position of median
               let median_pos = Math.ceil((n) / (2.0));
               median_pos--;
               let median = X / (n - median_pos);
               return median;
           }
           return 0;
       }
 
       // Driver Code
 
       let n = 1, X = 7;
       document.write(maximizeMedian(n, X));
 
 // This code is contributed by Potta Lokesh
   </script>
Producción

7

Complejidad de Tiempo : O(1)
Espacio Auxiliar : O(1)

Publicación traducida automáticamente

Artículo escrito por geekyss y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *