Saltar al contenido

La fila de los pingüinos

Enunciado

A la hora de la comida, los pingüinos del centro de rescate se forman frente a Thandiwe Mokoena, la cuidadora, con la cubeta de pescados. Ella vigila a uno que viene de una fractura y quiere saber cuántos pescados habrá repartido en total cuando ese pingüino termine de comer.

Recibes pescados, una lista de enteros mayores que 0 con al menos un elemento: lo que quiere cada pingüino, en el orden de la fila. Y k, la posición del pingüino vigilado, contando desde 0 (siempre es válida). En cada turno, el del frente recibe un pescado. Si todavía le falta, se forma al final de la fila; si ya completó lo suyo, se va a nadar. Regresa cuántos pescados se han repartido en el momento en que el pingüino k recibe el último suyo, contando ese.

Con [2, 3, 1] y k 1 (el que quiere 3), los turnos son: 0, 1, 2 (se va), 0 (se va), 1, 1 (se va). El vigilado completa en el sexto pescado: regresas 6.

Ejemplos

  • El ejemplo

    [2, 3, 1], 1 → 6

  • Un solo pingüino

    [4], 0 → 4

  • Todos quieren uno

    [1, 1, 1, 1], 2 → 3

  • Todos quieren lo mismo

    [3, 3, 3], 1 → 8

  • El vigilado va al frente

    [5, 1, 2], 0 → 8

  • El vigilado va al final

    [2, 5, 1, 4], 3 → 11

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

Empiezas con esto

Python

def pescados_hasta(pescados, k):
    pass

JavaScript

function pescadosHasta(pescados, 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²)

Ver todos los retos →