Los hechizos que voltean
- O(n log n) · Difícil
- Plan completo
- Python
- JavaScript
- ordenar
- listas
- condicionales
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):
passJavaScript
function voltea(runas, k) {
}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)
- Los números de las camisetaslistas · ordenar · ciclos
- Los primos hasta nlistas · ciclos · operaciones
- Los tres cristaleslistas · ordenar · operaciones
- Los tres mejores puntajeslistas · ordenar · ciclos
- Los vagones que no se muevenlistas · ordenar · división
- Números escritos como textolistas · ordenar · textos