Si bien es similar al otro rompecabezas que transporta agua , los aspectos únicos de este desafío lo hacen completamente diferente.
Beth está ubicada en un oasis en medio de un desierto. Hay mucha agua en el lago, pero desafortunadamente solo hay cubos X, cada uno de los cuales tiene una capacidad de Y litros de agua.
Beth puede llevar 2 cubos en sus manos, pero para sobrevivir, debe beber exactamente 1 litro después de cada kilómetro que recorre. También puede dejar algunos cubos a mitad de camino (el agua no se evapora).
El reto
Calcule la fórmula y escriba la solución más corta que funcione para valores enteros positivos de X e Y y calcule la distancia máxima que Beth puede viajar desde el oasis. Se permite mover agua entre los cubos.
Ejemplo
X = 3, Y = 5
- Beth deja 1 cubo lleno a 3 km del oasis, regresa (tomando el último trago del oasis)
- Beth trae otro balde lleno en el punto de 3 km, con 12 litros allí ahora.
- Beth puede avanzar hasta el punto de 6 km y dejar el balde con 4 litros de agua.
- Vuelve al punto de 3 km. Ahora tiene exactamente 2 litros para volver al oasis.
- Llenar cubos y viajar a punto de 6 km. Ella ahora tiene 8L de agua.
- Continuar todo el camino hasta el punto 15KM.
La respuesta es: 15
De entrada y salida
Puede definir X / Y directamente en el código o leer desde la entrada. El resultado podría colocarse en variable o salida, el que sea más corto.
fuente
Respuestas:
JavaScript (ES6), 25 bytes
Todos estos calculan el mismo valor; Parece que no se me ocurre una formulación más corta.
Cuando
x
es menor que3
, tomas tanta agua como puedes y caminas tan lejos como puedes, lo cual es simplex*y+1
.Cuando
x
es al menos 3, debes comenzar a construir cachés.Desde el oasis, puede dejar un cubo lleno a distancia
y/2
y regresar al oasis. Necesitas 2 cubos para hacer esto, pero esto no es útil si solo tienes 2 cubos porque quieres poder llenar 2 cubos cuando regreses al oasis.Desde el oasis, con un balde a distancia
y/2
, puede dejar un balde lleno a distanciay
y regresar al oasis. Necesitas 3 cubos para hacer esto.Desde el oasis, con cubos llenos en ambos
y
yy/2
, puede dejar un cubo lleno a distancia3y/2
y regresar al oasis. Necesitas 4 cubos para hacer esto. Luego debes dejar un cubo lleno a una distanciay/2
y regresar al oasis.Finalmente, puede terminar con un cubo lleno en
(x-1)y/2
. (No puede dejar un cubo llenoxy/2
porque no podría volver al oasis, ya que el viaje de ida y vuelta esxy
la capacidad total de los cubos).Usando los cubos restantes, puede dejar cubos llenos en
(x-3)y/2
...y
oy/2
. En este punto, simplemente camina lo más lejos que puede, recogiendo sus cubos llenos a medida que avanza. Cuando llegue(x-1)y/2
, todavía le quedan dos cubos llenos, lo que le permite alcanzar(x+3)y/2
.El extra
1
proviene de la peculiaridad de las reglas que le permite caminar su última milla sin tener agua. Aunque el ejemplo muestra que puede dejar los cubos un poco más lejos de lo descrito anteriormente, esto en realidad no le ayuda a caminar más, ya que debe dejar menos agua o beber el agua del cubo cuando lo alcanza antes de poder moverse. en.fuente