Saltar al contenido

Las hornadas de la mañana

Enunciado

Amparo prende el horno de la panadería antes de que amanezca y ya tiene la fila de hornadas lista, cada una con sus kilos de masa. La mañana se reparte en turnos, y en cada turno entran hornadas seguidas de la fila: la fila no se reacomoda y ningún turno se queda vacío. El turno más pesado es el que la deja horneando más tiempo, así que quiere repartir la fila de manera que ese turno, el peor, pese lo menos posible. Escribe una función que reciba hornadas, una lista de enteros positivos con los kilos de cada hornada en el orden de la fila (viene con al menos una), y turnos, un entero de 1 al número de hornadas. Regresa un entero: los kilos del turno más pesado del mejor reparto.

Con hornadas de 7, 2, 5, 10 y 8 kilos en dos turnos, la respuesta es 18: el primer turno se lleva 7, 2 y 5, que son 14 kilos, y el segundo se lleva 10 y 8, que son 18. Si el corte fuera después del 10, los turnos pesarían 24 y 8, y el peor sería 24.

Con un solo turno entra toda la fila, así que la respuesta es la suma de todo. Con un turno por hornada, la respuesta es la hornada más pesada. Hay mañanas de hasta 34 hornadas en 17 turnos.

Ejemplos

  • El ejemplo

    [7, 2, 5, 10, 8], 2 → 18

  • Un solo turno

    [7, 2, 5, 10, 8], 1 → 32

  • Un turno por hornada

    [7, 2, 5, 10, 8], 5 → 10

  • Partir la fila por la mitad no alcanza

    [1, 1, 1, 1, 20], 2 → 20

Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.

Empiezas con esto

Python

def mas_pesado(hornadas, turnos):
    pass

JavaScript

function masPesado(hornadas, turnos) {
}
Resolver este reto

Se abre en el navegador, con el editor y las pruebas. Este reto es del plan completo; los de O(1) y O(log n) son gratis.

Más retos de O(2ⁿ)

Ver todos los retos →