Ctrl K

Перекрасить стрелки до выхода

Сложная
Дано поле m × n. В каждой клетке нарисована стрелка, указывающая, куда идти дальше: - 1 — вправо, в arrows[i][j + 1]; - 2 — влево, в arrows[i][j - 1]; - 3 — вниз, в arrows[i + 1][j]; - 4 — вверх, в arrows[i - 1][j]. Стрелка может указывать и за пределы поля. Робот стартует в левой верхней клетке (0, 0) и всегда идёт строго по стрелкам. Нужно, чтобы он дошёл до правой нижней клетки (m - 1, n - 1); путь не обязан быть кратчайшим. Стрелку в любой клетке можно перекрасить в любое из четырёх направлений, это стоит 1. Верните минимальное число перекрасок, после которых робот доберётся до цели.
Пример 1
arrows=[[1, 3], [2, 2]] → 0

Из (0, 0) идём вправо, из (0, 1) — вниз и попадаем в правый нижний угол. Перекрашивать ничего не надо.

Пример 2
arrows=[[4, 4], [4, 4]] → 2

Все стрелки смотрят вверх, за край поля. Перекрасим (0, 0) на «вправо», а (0, 1) на «вниз» — две перекраски.

Пример 3
arrows=[[3, 1, 1], [1, 1, 4], [2, 2, 2]] → 1
Ограничения
  • 1 ≤ m, n ≤ 100
  • arrows[i][j] ∈ {1, 2, 3, 4}
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиШарик и лунка СложнаяСквозь стены в дальний угол СложнаяЗалы, открывающиеся по расписанию СложнаяКратчайший путь катящегося шарика СредняяЧерез опасное поле Средняя
загружаем Python…
Вход
arrows=[[1, 3], [2, 2]]
Ожидается
0

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 90 тестов на сервере, включая скрытые.