Каждый Пi можно положить либо горизонтально, либо вертикально.
Будем заполнять П от нижнего левого угла.
На каждом шаге мы
1) будем искать в уже заполненной фигуре "нишу" с минимальными
координатами левого нижнего угла;
2) для каждого из еще не использованных Пi повторить
брать очередной Пi и пытаться вставить в "нишу"
если удалось, и мы не вышли за пределы П,
то
пометить Пi как испольнованный
на шаг 1
scratch:
пометить Пi как неиспольнованный
конец то
конец для
если использовали все Пi, то печать результата. Стоп.
если не использован ни один Пi, то решения нет.
иначе возврат на scratch
.