eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Разрезание прямоугольника

Разрезание прямоугольника

На координатной плоскости задан прямоугольник, высота которого \textbf{h}, а ширина \textbf{w}. Внутри прямоугольника заданы отрезки, параллельные осям координат и с концами, имеющими целочисленные координаты. Прямоугольник планируется разрезать на несколько частей горизонтальными или вертикальными разрезами. За один шаг разрешается разрезать на две непустые прямоугольные части только один из имеющихся на этом шаге прямоугольников. При этом запрещается при разрезе пересекать любой из заданных отрезков. Требуется написать программу, позволяющую найти количество способов разрезания исходного прямоугольника на \textbf{k} частей вертикальными и горизонтальными разрезами. Способы, отличающиеся порядком проведения разрезов, считаются различными. \InputFile Первая строка содержит размеры прямоугольника - целые числа \textbf{h }и \textbf{w }(\textbf{1 }≤ \textbf{h}, \textbf{w }≤ \textbf{8}). Вторая строка содержит количество частей \textbf{k}, на которые требуется разрезать прямоугольник (\textbf{1 }≤ \textbf{k }≤ \textbf{hw}). Третья строка содержит количество \textbf{cnt} (\textbf{0 }≤ \textbf{cnt }≤ \textbf{10}) заданных внутри прямоугольника отрезков. Последующие \textbf{cnt }строк содержат описания этих отрезков, то есть, каждая строка содержит четыре целых числа \textbf{x_1}, \textbf{y_1}, \textbf{x_2}, \textbf{y_2} (\textbf{0 }≤ \textbf{x_1}\textit{ ≤ }\textbf{x_\{2 \}}≤ \textbf{w}, \textbf{0 }≤ \textbf{y_1 }≤ \textbf{y_\{2 \}}≤ \textbf{h}) - координаты концов отрезка. \OutputFile Вывести искомое количество способов разрезания исходного прямоугольника. Ответ должен быть представлен по модулю \textbf{2^30}.
Лимит времени 1 секунда
Лимит использования памяти 64 MiB
Входные данные #1
7 7
20
5
0 0 0 1
0 1 0 4
4 5 4 7
3 5 4 5
4 3 7 3
Выходные данные #1
760400760
Источник 2008 XIX школьная областная олимпиада по информатике, Вологда, Задача F