Ctrl K

Рамка вокруг кляксы

Сложная
Лист бумаги задан таблицей sheet из m строк и n столбцов: "1" — клетка в чернилах, "0" — чистая. Все чернильные клетки образуют одну кляксу: от любой из них до любой другой можно дойти по чернильным клеткам, шагая вверх, вниз, влево или вправо. Вам известна одна клетка кляксы — (row, col). Верните площадь наименьшего прямоугольника со сторонами вдоль строк и столбцов, который накрывает всю кляксу. Просмотреть все клетки — очевидно; попробуйте уложиться быстрее, чем за O(m · n).
Пример 1
sheet=[["0", "1", "1"], ["0", "1", "0"], ["1", "1", "0"]], row=0, col=1 → 9

Клякса занимает строки с 0 по 2 и столбцы с 0 по 2, рамка 3 × 3 = 9.

Пример 2
sheet=[["0", "0", "0"], ["0", "1", "1"]], row=1, col=2 → 2

Клякса — две клетки в одной строке, рамка 1 × 2.

Пример 3
sheet=[["1"]], row=0, col=0 → 1
Ограничения
  • 1 ≤ m, n ≤ 100
  • Каждая клетка — "0" или "1"
  • 0 ≤ row < m, 0 ≤ col < n, sheet[row][col] = "1"
  • Чернильные клетки образуют одну связную область
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПереправа в прилив СложнаяПоследний день сухой переправы СложнаяМаршрут с самым высоким узким местом СредняяСамый пологий маршрут СредняяСамый длинный подъём по карте Сложная
загружаем Python…
Вход
sheet=[["0", "1", "1"], ["0", "1", "0"], ["1", "1", "0"]], row=0, col=1
Ожидается
9

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