Saltar al contenido

La primera versión rota

Enunciado

Cada revisión cuesta una tarde entera: instalar la versión, jugarla hasta el jefe final y ver si el juego se congela. El estudio publicó sus versiones en orden, y en alguna se coló un error que ya no se fue: desde ésa, todas las que siguen lo traen.

Recibes una lista de booleanos, uno por versión: falso si funciona y verdadero si está rota. Siempre vienen primero todas las buenas y después todas las rotas. Regresa la posición de la primera rota, contando desde 0. Con cinco versiones donde solo las dos primeras funcionan, regresas 2.

Si ninguna está rota, o la lista viene vacía, regresas -1.

No las revises de una en una: mira la de en medio y descarta la mitad donde no puede estar la primera rota, como en un diccionario.

Ejemplos

  • Dos buenas y tres rotas

    [false, false, true, true, true] → 2

  • Solo la última está rota

    [false, false, false, false, false, true] → 5

  • Dos versiones

    [false, true] → 1

  • Muchas versiones

    [false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, true] → 9

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

Empiezas con esto

Python

def primera_rota(versiones):
    pass

JavaScript

function primeraRota(versiones) {
}
Resolver este reto

Se abre en el navegador, con el editor y las pruebas. Es gratis y no hace falta cuenta para empezar.

Más retos de O(log n)

Ver todos los retos →