Wyzwanie
Spacerując po Markach i Spencerach, zauważyłem, że mają klimatyzatory rozmieszczone losowo wokół sklepu. Chcąc zachować spokój, zastanawiałem się, jaki był najłatwiejszy sposób poruszania się po całym sklepie bez zbyt długiego przebywania w pobliżu klimatyzatora.
Biorąc pod uwagę mapę, musisz znaleźć sposób na poruszanie się po całej mapie, utrzymując możliwie jak najkrótszą odległość od klimatyzatora (nawet jeśli klimatyzator znajduje się po drugiej stronie ściany).
Mapa
Mapa może być dostarczana w dowolny sposób i wykorzystuje następujące symbole:
+ 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
Przykładowa mapa to:
+------S---+
| X |
| ---+-+ X |
| |X| |
| ---+ +---+
| X |
+----------+
lub
+---+--+
| X | |
| | +-----+------+
| | X | X |
| ---+ | S
| | | X | |
| | +-+-------+--+
| X |
+------+
Podróżowanie po całej mapie oznacza przechodzenie przez każdą pustą przestrzeń i klimatyzator. Nie możesz podróżować przez ścianę i możesz podróżować tylko ortogonalnie. Mapa nie zawsze może być prostokątna.
Utrzymywanie możliwie krótkiej odległości od urządzenia prądu przemiennego to suma wszystkich kroków czasowych.
Przejście oznacza wejście i wyjście.
Możesz wyprowadzić ścieżkę w dowolny sposób. Przykłady zawierają:
- Tworzenie mapy wraz ze ścieżką
- Wyprowadzanie ścieżki jako szeregu punktów kompasu (np.
NNSESW
)
źródło
Odpowiedzi:
PowerShell dla Windows,
376367 bajtówJak leniwy człowiek, nie chodzę na każdą półkę, przechodzę od klimatyzatora do klimatyzatora w sklepie. Wydaje mi się, że podróżowałem po całym sklepie, odwiedzając wszystkie klimatyzatory.
Wypróbuj online!
Rozwinięty:
źródło