На плоскости нарисовали красный прямоугольник. Затем
нарисовали N
зеленых
прямоугольников. Зеленые прямоугольники могут пересекаться между собой, а также
с красным прямоугольником. Стороны всех прямоугольников (как красного, так и
зеленых) параллельны осям координат.
Требуется
написать программу, определяющую набор прямоугольников со сторонами,
параллельными осям координат, и удовлетворяющих следующим условиям:
·
прямоугольники полностью покрывают часть красного прямоугольника,
которая не покрыта зелеными прямоугольниками;
·
прямоугольники не пересекаются между собой и с зелеными
прямоугольниками (касаться сторонами они при этом могут);
·
прямоугольники лежат внутри красного прямоугольника;
·
прямоугольники имеют ненулевую площадь;
·
количество прямоугольников в наборе не превышает 10000.
Формат входных данных:
В первой строке входного файла содержатся 4 числа —
координаты левого нижнего и правого верхнего углов красного прямоугольника. Во
второй строке задано число N. В каждой из
последующих N строк располагаются четверки
чисел, задающих соответственно координаты левых нижних и правых верхних углов
зеленых прямоугольников. Все координаты в строках разделены пробелами.
Координаты целые и находятся в диапазоне от –1000 до 1000.
Формат выходных данных:
Выходной файл должен
содержать в первой строке число М — количество прямоугольников в искомом
наборе. В каждой из последующих М строк должны располагаться четверки
чисел, задающих соответственно координаты левых нижних и правых верхних углов
прямоугольников набора. Все координаты в строках разделены пробелами.
Пример файлов входных и
выходных данных:
stdin
|
stdout
|
5 5 10 10
2
2 2 3 10
2 7 20 8
|
3
5 5 10 7
5 8 8 10
8 8 10 10
|