EduBrick

Отрезать полуплоскостью

1000 мс · 256 МБ · всё или ничего

Дан выпуклый многоугольник и несколько направленных прямых, каждая задана двумя точками. Для каждой найдите площадь той части многоугольника, которая лежит слева от прямой.

Слева - значит там, где косое произведение [Q−P,  X−P][Q - P,\; X - P] неотрицательно.

Формат ввода

В первой строке - число вершин nn (3≤n≤20003 \le n \le 2000).

В следующих nn строках - вершины выпуклого многоугольника против часовой стрелки. Координаты целые, по модулю не превосходят 10410^4.

Далее - число прямых qq (1≤q≤10001 \le q \le 1000) и qq строк по четыре числа: точки PP и QQ, задающие направленную прямую. Точки различны, координаты целые, по модулю не превосходят 10410^4.

Формат вывода

Для каждой прямой выведите площадь части многоугольника слева от неё, с точностью 10−610^{-6}.

Примеры

ввод
4
0 0
4 0
4 4
0 4
3
2 0 2 4
0 0 4 0
10 4 10 0
вывод
8
16
0
ввод
3
0 0
4 0
0 4
2
0 4 4 0
4 0 0 4
вывод
0
8
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.