Desafío
Caminando por Marks and Spencers, noté que tenían unidades de aire acondicionado ubicadas al azar alrededor de la tienda. Con ganas de mantenerme fresco, me preguntaba cuál era la forma más fácil de moverse por toda la tienda sin estar demasiado tiempo alejado de una unidad de aire acondicionado.
Dado un mapa, debe encontrar una manera de recorrer todo el mapa manteniendo la distancia desde una unidad de aire acondicionado lo más corta posible (incluso si la unidad de CA está del otro lado de una pared).
Mapa
El mapa se puede suministrar de la forma que desee y utiliza los siguientes símbolos:
+ is a corner of a wall
| is a east/west facing wall
- is a north/south facing wall
X is an air conditioning unit
S is the start and end point
Un mapa de ejemplo sería:
+------S---+
| X |
| ---+-+ X |
| |X| |
| ---+ +---+
| X |
+----------+
o
+---+--+
| X | |
| | +-----+------+
| | X | X |
| ---+ | S
| | | X | |
| | +-+-------+--+
| X |
+------+
Viajar por todo el mapa significa pasar por cada espacio vacío y aire acondicionado. No puede viajar a través de una pared y solo puede viajar ortogonalmente. Un mapa puede no ser siempre rectangular.
Mantener la distancia lo más corta posible de una unidad de CA es la suma en todos los pasos de tiempo.
Pasar a través significa entrar y salir.
Puede generar la ruta de la forma que desee. Ejemplos incluyen:
- Salida del mapa con la ruta incluida
- Salida de la ruta como una sucesión de puntos cardinales (p
NNSESW
. Ej. )
fuente
Respuestas:
PowerShell para Windows,
376367 bytesComo un hombre perezoso, no voy a todos los estantes, me cambio de aire acondicionado a aire acondicionado en una tienda. Creo que viajé por toda la tienda visitando todos los acondicionadores de aire.
Pruébalo en línea!
Desenrollado:
fuente