Ctrl K

Подальше от часовых

Средняя
Дано квадратное поле field размером n × n: 1 — клетка с часовым, 0 — пустая. Нужно пройти из левой верхней клетки (0, 0) в правую нижнюю (n - 1, n - 1), шагая в соседние по стороне клетки. Наступать можно на любые клетки, в том числе с часовыми. Расстояние между клетками (r1, c1) и (r2, c2) считается как |r1 - r2| + |c1 - c2|. **Надёжность** маршрута — наименьшее расстояние от какой-либо клетки маршрута до какого-либо часового. Верните наибольшую надёжность, которой можно добиться.
Пример 1
field=[[0, 0, 0], [0, 0, 0], [1, 0, 0]] → 2

Часовой в левом нижнем углу. Путь по верхней строке и правому столбцу ни разу не подходит к нему ближе чем на 2 (ближе всего клетки (0, 0) и (2, 2)).

Пример 2
field=[[0, 1], [0, 0]] → 1

Обе клетки (0, 0) и (1, 1) стоят вплотную к часовому, так что лучше 1 не получится.

Пример 3
field=[[1]] → 0

Старт и финиш — одна клетка, и в ней стоит часовой: ответ 0.

Ограничения
  • 1 ≤ n ≤ 400
  • field — квадрат n × n из 0 и 1
  • На поле есть хотя бы один часовой
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиМаршрут с самым высоким узким местом СредняяСамый пологий маршрут СредняяПереправа в прилив СложнаяПоследний день сухой переправы СложнаяСколько клеток зальёт вода Сложная
загружаем Python…
Вход
field=[[0, 0, 0], [0, 0, 0], [1, 0, 0]]
Ожидается
2

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