Задача № 13
Робот находится в левой нижней клетке прямоугольника 2×12. Задача робота — покрасить все клетки прямоугольника, в которых есть проход из прямоугольника. Остановиться надо в исходной клетке.
Задача № 13: робот стоит в левой нижней клетке прямоугольника 2×12. Нужно покрасить все клетки прямоугольника, у которых есть выход (проход) за пределы прямоугольника, и остановиться в исходной клетке.
Анализ:
- В прямоугольнике 2×12 любая клетка касается внешнего пространства через одну из своих боковых сторон, потому что высота прямоугольника равна 2. Значит, все 24 клетки имеют «проход из прямоугольника», и поэтому нужно покрасить все клетки.
- Нужная траектория должна заканчиватьcя в исходной клетке (левой нижней). Таким образом подойдет цикл по двум рядам (петелька-«змейка» по периметру), которая охватывает все клетки.
Пошаговое решение (путь по клеткам, покраска при первом заходе в клетку):
- Обозначим верхнюю строку как row 1, нижнюю как row 2. Начальная клетка: (2,1) — левая нижняя.
- Ход последовательности:
1) Покрасьте стартовую клетку: (2,1).
2) Двигайтесь вправо по нижнему ряду до конца: (2,2), (2,3), ..., (2,12). Во всех этих клетках выполняется покраска при входе.
3) Перейдите вверх: (1,12). Покрасьте её.
4) Двигайтесь влево по верхнему ряду: (1,11), (1,10), ..., (1,1). Во всех этих клетках покраска выполнена при входе.
5) Спуститесь вниз к исходной клетке: (2,1). Это возвращает нас в начальную клетку, где уже была покрашена первая клетка.
- Результат: все 24 клетки покрашены, робот стоит в исходной клетке (2,1) — задача выполнена.
Итоговый маршрут в координатах (последовательность посещённых клеток, первая и последняя повторяются по необходимости):
(2,1) → (2,2) → (2,3) → … → (2,12) → (1,12) → (1,11) → … → (1,1) → (2,1).
Замечания:
- Этот путь — стандартная Hamiltonian-перекрёстная «змейка» для 2×N: он охватывает все клетки и возвращается в стартовую точку.
- Для любого 2×N с N≥2 такая же схема работает: пройти по нижнему ряду слева направо, подняться на верхний на правом краю, пройти по верхнему ряду справа налево, опуститься обратно в левый нижний край.
Если у задачи другие условия (например, не все клетки нужны к покраске или формат проходов отличается), дайте уточнение — скорректирую решение под конкретную раскладку проходов.