La caravana de los oasis
- O(n²) · Muy difícil
- Plan completo
- Python
- JavaScript
- división
- ciclos
- listas
Enunciado
Tariq guía una caravana de camellos por un circuito de oasis de la Ruta de la Seda que termina donde empieza. En cada oasis llena los odres con lo que haya, y en cada tramo al siguiente la caravana se bebe lo suyo. Recibes agua y gasto, dos listas del mismo largo (al menos uno) con enteros de 0 en adelante: en el oasis i se cargan agua[i] litros, sin tope, y el tramo al oasis siguiente cuesta gasto[i]; del último se vuelve al 0. Saliendo con los odres vacíos del oasis s, se carga, se hace el tramo, se carga en el siguiente, y así hasta volver a s.
Si tras un tramo el agua queda negativa, esa salida no sirve; llegar con 0 justo sí vale. Regresa la salida más chica que da la vuelta completa, o -1 si ninguna la da.
Con agua [1, 2, 3, 4, 5] y gasto [3, 4, 5, 1, 2]: desde el 0, el 1 y el 2 falta agua en el primer tramo. Desde el 3: 4-1=3, 3+5-2=6, 6+1-3=4, 4+2-4=2, 2+3-5=0. Llega justo a casa: regresas 3.
Ejemplos
El ejemplo
[1, 2, 3, 4, 5], [3, 4, 5, 1, 2] → 3
Ninguna salida alcanza
[2, 3, 4], [3, 4, 3] → -1
Un solo oasis sin gasto
[0], [0] → 0
Llegar con los odres vacíos vale
[3, 1], [2, 2] → 0
Dos salidas sirven, gana la más chica
[0, 3, 3], [1, 1, 1] → 1
Pasar el primer tramo no basta
[3, 0, 4], [1, 4, 2] → 2
Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.
Empiezas con esto
Python
def oasis_de_salida(agua, gasto):
passJavaScript
function oasisDeSalida(agua, gasto) {
}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.