Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Как проверить может ли войти площадь прямоугольника Б в площадь прямоугольника А в котором есть занятые области?

Есть прямоугольник А состоящий из квадратов допустим 10х20 квадратов, есть прямоугольник Б меньшей площади состоящий из таких же квадратов допустим 2х3 квадратов. Каждый квадрат прямоугольника А может быть свободным или занятым, на свободный квадрат можно наложить квадрат прямоугольника Б, а на занятый нет. У прямоугольника А часть квадратов занято, их позиция и количество известно. Вопрос: как максимально быстро определить возможно ли наложить прямоугольник Б на прямоугольник А, что бы прямоугольник Б не содержал в себе занятых квадратов А? Полный перебор помогает, но для больших площадей занимает очень много времени, возможно есть более элегантное решение.
МатематикаАлгоритмы+3
Василий Григорьевич
  ·   · 528
Простые числа. Преподаватель с 2001, к.т.н. Яндекс...  · 27 февр 2022
Тут напрашиваются 2 подхода:
1) Если занятых квадратов мало, то проверять возможные позиции вокруг каждого занятого.
2) Если занятых квадратов много, то остается делать полный перебор. Но его можно сократить, если определенные позиции позиции вокруг каждого занятого пометить как недоступные (пусть занятые закрашены черным цветом, а недоступные - серым, тогда залезать на серые можно, только при проверке с доступной позиции).
Оптимального алгоритма так просто не подобрать, т.к. он упирается в анализ конфигурации занятых квадратов.