Twoim zadaniem jest napisanie programu, który znajdzie optymalną liczbę ruchów potrzebnych do przejścia od lewego dolnego rogu prostokąta do prawego górnego rogu naprzeciwko.
Twój program zaakceptuje dane wejściowe jako uporządkowaną parę (width, height)
. Będą to wymiary prostokąta, z którymi będziesz pracować. Twój program utworzy ASCII-art rozwiązania (użyj .
dla pustego kwadratu i #
dla części rozwiązania, X
dla kwadratu początkowego) i policz liczbę ruchów potrzebnych do osiągnięcia punktu końcowego. Ruchy po przekątnej są niedozwolone. Jeśli istnieje wiele rozwiązań, wybierz jedno z nich.
Najkrótszy program w bajtach wygrywa.
Przykład
Wejście: (4, 5)
Wynik:
..##
..#.
.##.
.#..
X#..
Liczba ruchów: 7
#
ponieważ nielogiczne jest przechodzenie w lewo lub w dół.
#
„optymalnego rozwiązania” (które jest rozwiązaniem, które nigdy nie przesuwa się w lewo ani w dół)?