Desafio
Andando pela Marks e Spencers, notei que eles tinham aparelhos de ar condicionado colocados aleatoriamente em torno da loja. Querendo me refrescar, me perguntei qual seria a maneira mais fácil de percorrer toda a loja sem ficar longe de um aparelho de ar condicionado por muito tempo.
Dado um mapa, você deve encontrar uma maneira de percorrer o mapa inteiro, mantendo a distância de uma unidade de ar condicionado o mais curta possível (mesmo que a unidade de CA esteja do outro lado de uma parede).
Mapa
O mapa pode ser fornecido da maneira que você quiser e usa os seguintes 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
Um mapa de exemplo seria:
+------S---+
| X |
| ---+-+ X |
| |X| |
| ---+ +---+
| X |
+----------+
ou
+---+--+
| X | |
| | +-----+------+
| | X | X |
| ---+ | S
| | | X | |
| | +-+-------+--+
| X |
+------+
Viajar pelo mapa inteiro significa passar por todos os espaços vazios e aparelhos de ar condicionado. Você não pode viajar através de uma parede e só pode viajar ortogonalmente. Um mapa nem sempre pode ser retangular.
Manter a distância o mais curta possível de uma unidade CA é a soma de todas as etapas do tempo.
Passar significa entrar e sair.
Você pode enviar o caminho da maneira que desejar. Exemplos incluem:
- Saída do mapa com o caminho incluído
- Saída do caminho como uma sucessão de pontos de bússola (por exemplo
NNSESW
)