Ctrl K

Последний день сухой переправы

Сложная
Есть поле из rows строк и cols столбцов; строки и столбцы нумеруются с единицы. В день 0 всё поле — суша. Затем каждый день одна клетка уходит под воду: в день i (считая с 1) заливается клетка flooded[i - 1] = [r, c] — строка r, столбец c. Каждая клетка заливается ровно один раз. Путник хочет пройти по суше от любой клетки верхней строки до любой клетки нижней, перемещаясь только вверх, вниз, влево и вправо. Верните номер последнего дня, после затопления в который такой путь ещё существует.
Пример 1
rows=2, cols=3, flooded=[[1, 2], [2, 1], [2, 3], [1, 1], [2, 2], [1, 3]] → 2

После 2-го дня сухими остаются клетки (1,1), (1,3), (2,2), (2,3): из (1,3) можно спуститься в (2,3). На 3-й день заливает (2,3), и путь сверху вниз пропадает. Ответ — 2.

Пример 2
rows=2, cols=2, flooded=[[1, 1], [1, 2], [2, 1], [2, 2]] → 1

Уже на 2-й день залит весь верхний ряд, так что последний «сухой» день — 1-й.

Ограничения
  • 2 ≤ rows, cols ≤ 2 · 10⁴
  • 4 ≤ rows · cols ≤ 2 · 10⁴
  • len(flooded) == rows · cols
  • 1 ≤ flooded[i][0] ≤ rows, 1 ≤ flooded[i][1] ≤ cols
  • Все клетки в flooded различны
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПереправа в прилив СложнаяМаршрут с самым высоким узким местом СредняяСамый пологий маршрут СредняяРамка вокруг кляксы СложнаяЗасыпать одну клетку Сложная
загружаем Python…
Вход
rows=2, cols=3, flooded=[[1, 2], [2, 1], [2, 3], [1, 1], [2, 2], [1, 3]]
Ожидается
2

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