Ctrl K

Перекрыть единственный проход

Средняя
Склад задан таблицей grid размером m × n: 1 — свободная клетка, 0 — завал. Погрузчик стартует в клетке (0, 0) и должен доехать до (m - 1, n - 1), а ездить он умеет только вниз и вправо и только по свободным клеткам. Разрешено поменять значение не более чем одной клетки (1 на 0 или 0 на 1) — кроме стартовой и финишной. Можно ничего не менять. Верните True, если так можно добиться, чтобы погрузчик не смог доехать до финиша, и False иначе.
Пример 1
grid=[[1, 1, 0], [0, 1, 1], [1, 1, 1]] → True

Любой маршрут проходит через клетку (0, 1): из угла можно шагнуть только вправо, вниз стоит 0. Перекроем её — и пути не станет.

Пример 2
grid=[[1, 1, 1], [1, 1, 1]] → False

Каждая внутренняя клетка обходится другим маршрутом, так что одной перекрытой клетки не хватит.

Пример 3
grid=[[1, 0], [0, 1]] → True

Маршрута нет с самого начала — менять ничего не нужно.

Ограничения
  • 1 ≤ m, n ≤ 1000
  • m · n ≤ 10⁵
  • все строки одной длины
  • grid[i][j] — 0 или 1
  • grid[0][0] = grid[m - 1][n - 1] = 1
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамый длинный подъём по карте СложнаяПрогулки только в гору СложнаяОсушение замкнутых прудов СредняяУчастки суши на карте СредняяДождь стекает в оба моря Средняя
загружаем Python…
Вход
grid=[[1, 1, 0], [0, 1, 1], [1, 1, 1]]
Ожидается
True

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