Saltar al contenido

La cuenta más barata

Enunciado

El sábado en el mercado, el marchante de la fruta te ofrece un trato raro: tú le dices cuántos kilos llevas de cada fruta, él te da una lista de precios por kilo, y tú decides qué precio va con qué fruta. Quieres pagar lo menos.

Escribe una función que reciba cantidades y precios, dos listas de enteros positivos del mismo largo (pueden venir vacías), y regrese un entero: el total más bajo posible. Cada cantidad se multiplica por un precio, y cada precio se usa exactamente una vez.

Con cantidades 2 y 5 y precios 10 y 4: 5 kilos a 4 y 2 a 10 dan 40; al revés, 5 a 10 y 2 a 4 dan 58. La respuesta es 40.

Con las listas vacías no pagas nada: regresas 0.

Ejemplos

  • El del ejemplo

    [2, 5], [10, 4] → 40

  • Tres frutas

    [2, 5, 3], [4, 10, 7] → 61

  • Lo más pesado, con lo barato

    [1, 8], [2, 9] → 25

  • Una sola fruta

    [4], [6] → 24

  • Precios iguales

    [3, 1], [5, 5] → 20

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

Empiezas con esto

Python

def cuenta(cantidades, precios):
    pass

JavaScript

function cuenta(cantidades, precios) {
}
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(n log n)

Ver todos los retos →