Saltar al contenido

Los hechizos que voltean

Enunciado

Cada hechizo de volteo cambia el signo de una runa: la de -3 pasa a valer 3, y la de 3 pasa a valer -3. La hechicera Ilse tiene que lanzar todos sus hechizos, y quiere que la suma de las runas quede lo más alta posible. Escribe una función que reciba runas, una lista de enteros (al menos una; puede haber negativos y ceros), y k, cuántos hechizos tiene, un entero de 0 en adelante. Regresa un entero: la suma más alta que puede quedar después de exactamente k volteos. Puede voltear la misma runa las veces que quiera; voltearla dos veces la deja como estaba.

Con -4, 2, -1 y 3 y dos hechizos, voltea -4 y -1: 4 + 2 + 1 + 3 = 10.

Con -3 y 5 y tres hechizos, voltea -3 y gasta los otros dos en una misma runa, ida y vuelta: 3 + 5 = 8. Con k en 0, la suma queda tal cual.

Ejemplos

  • El primer ejemplo

    [-4, 2, -1, 3], 2 → 10

  • Sobran dos, ida y vuelta

    [-3, 5], 3 → 8

  • Sin hechizos

    [-2, 3], 0 → 1

  • El que sobra regresa a la misma runa

    [-1, 5, 6], 2 → 10

  • Hay más negativos que hechizos

    [-6, -2, -9, 1], 2 → 14

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

Empiezas con esto

Python

def voltea(runas, k):
    pass

JavaScript

function voltea(runas, k) {
}
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 →