IOI 95
Шесть основных макетов четырех прямоугольников
Даны четыре прямоугольника. Найдите самый маленький прямоугольник (новый), в который эти четыре могут быть установлены без перекрытия. Наименьшим прямоугольником мы называем ту, которая имеет наименьшую площадь.
Все четыре прямоугольника должны иметь свои стороны параллельно соответствующим сторонам охватывающего прямоугольника. На рисунке 1 показаны шесть способов совмещения четырех прямоугольников. Эти шесть являются единственными возможными базовыми макетами, так как любой другой макет может быть получен из основного макета путем вращения или отражения. Прямоугольники могут поворачиваться на 90 градусов во время упаковки.
Может существовать несколько различных прямоугольников, удовлетворяющих требованиям, все с той же областью. Вы должны создать все такие прямоугольники.
ФОРМАТ INPUT
Четыре строки, каждая из которых содержит два положительных целых числа, разделенных пробелами, которые представляют длины прямоугольника с двух сторон. Каждая сторона прямоугольника имеет не менее 1 и не более 50.ФОРМАТ ВЫХОДА
Выходной файл содержит одну строку больше, чем количество решений. Первая строка содержит одно целое число: минимальная площадь прямоугольников. Каждая из следующих строк содержит одно решение, описываемое двумя числами p и q с p <= q. Эти строки должны быть отсортированы в порядке возрастания p и должны быть разными.
Итак, это выражение о проблеме. Я понял, что хочу попробовать все 24 * 16 позиций (вы можете поворачивать прямоугольник на 90 градусов) против всех этих основных макетов и проверять новую область, однако я не знаю, как это реализовать. Все, что угодно от какого-либо псевдокода, до ссылок на статьи, поможет многим. Спасибо заранее.