Ваше завдання - написати програму, яка знайде оптимальну кількість рухів, необхідних для отримання від лівого нижнього кута прямокутника до правого верхнього кута прямо навпроти.
Ваша програма прийме дані як впорядковану пару (width, height)
. Це будуть розміри прямокутника, з яким ви будете працювати. Ваша програма створить ASCII-мистецтво рішення (використовувати .
для порожнього квадрата та #
для частини рішення, X
для початкового квадрата) та підраховуватиме кількість кроків, необхідних для досягнення кінцевої точки. Діагональні ходи заборонені. Якщо є кілька рішень, виберіть одне для виведення.
Виграє найкоротша програма в байтах.
Приклад
Вхід: (4, 5)
Вихід:
..##
..#.
.##.
.#..
X#..
Кількість рухів: 7
#
оскільки нелогічно йти вліво або вниз.
#
"оптимального рішення" (що таке рішення, яке ніколи не рухається вліво чи вниз)?