Es posible que haya visto este en Die Hard: With a Vengeance ... Esta pregunta se basa en el famoso rompecabezas de jarras de 3 y 5 litros, pero con una inclinación ligeramente diferente.
Obtenga un código que, cuando se le da un número entero entre 1 y 100, le proporcionará las instrucciones más rápidas para medir en un tanque, la cantidad correspondiente de litros de agua de una fuente, utilizando una jarra de 3 litros y una jarra de 5 litros.
No hay gradaciones en ninguna de las jarras; la fuente es abundante en el suministro de agua, y se supone que el tanque se vacía al comienzo de cada ejecución del código.
No puede acceder al agua del tanque una vez que entra en el tanque.
El formato de ejecución es el siguiente:
Entrada:
4
por ejemplo.
Salida
Salida de cada paso numerado, como se muestra, seguido de una cuenta de los volúmenes de la jarra de 5L, la jarra de 3L y el tanque. El formato de conteo también se muestra a continuación. El número de pasos también se debe generar al final de los pasos.
1) Fill 5L jug
5L: 5, 3L: 0, T: 0
2) Pour from 5L jug into 3L jug
5L: 2, 3L: 3, T: 0
3) Empty 3L jug
5L: 2, 3L: 0, T: 0
4) Pour from 5L jug into 3L jug
5L: 0, 3L: 2, T: 0
5) Fill 5L jug
5L: 5, 3L: 2, T: 0
6) Pour from 5L jug into 3L jug
5L: 4, 3L: 3, T: 0
7) Pour from 5L jug into tank
5L: 0, 3L: 3, T: 4
Volume measured out in 7 turns
Ejemplo 2
Entrada: 8
Salida:
1) Fill 5L jug
5L: 5, 3L: 0, T: 0
2) Pour from 5L jug into tank
5L: 0, 3L: 0, T: 5
3) Fill 3L jug
5L: 0, 3L: 3, T: 5
4) Pour from 3L jug into tank
5L: 0, 3L: 0, T: 8
Volume measured out in 4 turns
Convenciones
Fill xL jug
- llena la jarra asociada hasta la parte superior de la fuenteEmpty xL jug
- vacía el contenido de la jarra asociada en la fuentePour from xL jug into yL jug
- Vierte el contenido de la jarra xL en la jarra yLPour from xL jug into tank
- Vierte el contenido de la jarra xL en el tanque
El código más corto gana.