Задача № 3
Есть прямоугольник 2×3. Из нижнего ряда в верхний есть проход шириной в одну клетку. Робот находится в какой-то клетке нижнего ряда. Задача робота — попасть в верхний ряд и остановиться в клетке над проходом.
Задача понятна: пройдя из нижнего ряда в верхний через один-cell проход, робот должен оказаться в верхнем ряду прямо над проходом.
Как решить в общем виде
- Обозначим номер столбца прохода p (1, 2 или 3). Обозначим стартовый столбец робота s (где он находится в нижнем ряду: s ∈ {1, 2, 3}).
- Путь состоит из двух частей:
1) Переместиться по нижнему ряду в столбец p: это |s − p| ходов.
2) Перейти через проход вверх в клетку (верхний ряд, тот же столбец p): 1 ход.
- В итоге робот окажется в верхнем ряду в клетке над проходом: в позиции (2, p).
- Общее число ходов: |s − p| + 1.
- Примечание: если s = p, достаточно одного хода вверх — сразу окажетесь в нужной клетке; если нет — сначала сместитесь по нижнему ряду к столбцу p, затем поднимитесь.
Примеры (если проход в центральном столбце, p = 2)
- Старт в (1, 1): (1,1) → (1,2) [1 ход], затем → (2,2) [1 ход]. Итого 2 хода.
- Старт в (1, 2): сразу вверх в (2, 2). 1 ход.
- Старт в (1, 3): (1,3) → (1,2) [1 ход], затем → (2,2) [1 ход]. Итого 2 хода.
Как применять на практике
- Определите, в каком столбце расположен проход p.
- Узнайте, в каком столбце находится робот s на нижнем ряду.
- Выполните перемещение вдоль нижнего ряда до столбца p, затем поднимитесь через проход в верхний ряд в этот же столбец.
- В итоге робот остановится в верхнем ряду над проходом, в клетке (2, p).
Если хотите, могу расписать конкретный маршрут для любого заданного начального положения робота и любого положения прохода (указать точные клетки и последовательность ходов).