Ctrl K

Лучшее наложение трафаретов

Средняя
Даны два трафарета first и second — квадратные таблицы n × n из нулей и единиц; единица означает закрашенную клетку. Трафарет first можно сдвинуть целиком на любое число клеток по горизонтали и по вертикали (поворачивать нельзя) и положить поверх second. Клетки, уехавшие за границу таблицы, пропадают. После сдвига посчитайте, сколько позиций закрашены в обоих трафаретах сразу. Верните наибольшее такое число по всем возможным сдвигам.
Пример 1
first=[[0, 1], [1, 1]], second=[[1, 1], [1, 0]] → 2

Сдвиг первого трафарета на одну клетку влево и вверх совмещает только одну клетку; без сдвига совпадают две — клетки (0, 1) и (1, 0).

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

Единственную закрашенную клетку сдвигаем на две вниз и на две вправо.

Пример 3
first=[[1, 1], [1, 1]], second=[[0, 0], [0, 0]] → 0
Ограничения
  • 1 ≤ n ≤ 30
  • len(first) = len(second) = n, каждая строка длины n
  • Все клетки равны 0 или 1
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСудоку без конфликтов СредняяПовернуть квадрат по часовой СредняяЧтение по спирали СредняяКвадрат, пронумерованный по спирали СредняяМаршруты тележки по складу Средняя
загружаем Python…
Вход
first=[[0, 1], [1, 1]], second=[[1, 1], [1, 0]]
Ожидается
2

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