Революція
Під час останніх парламентських виборів у Берландії дві політичні партії набрали однакову кількість голосів. Тепер одна з партій найняла вас, щоб допомогти їм з їхнім планом революції.
Під час революції вони планують розділити країну на дві частини. Партія дуже демократична, тому кожен член має свій власний план поділу.
Кордон Берландії можна уявити як опуклий багатокутник на площині. Багатокутник може мати три або більше послідовних вершини, що лежать на одній прямій. Кожен план поділу представлений лінією розрізу.
Ваша програма повинна обчислити площу найменшої частини Берландії для кожного плану поділу.
Вхідні дані
Перший рядок містить число n (3 ≤ n ≤ 50 000). Наступні n рядків містять координати x[i]
, y[i]
кордону Берландії за або проти годинникової стрілки. Багатокутник є невиродженим. Наступний рядок містить число p (1 ≤ p ≤ 50 000). Наступні p рядків містять координати x[1,j]
, y[1,j]
, x[2,j]
, y[2,j]
двох різних точок розділової прямої. Усі координати - дійсні числа, що не перевищують за модулем 10 000. Вони задані з не більше ніж 4 десятковими знаками.
Вихідні дані
Виведіть p рядків. Кожен рядок повинен містити площу меншої частини після поділу Берландії відповідною лінією. Відповідь виводити з не менше 6 цифрами після десяткової точки. Абсолютна або відносна похибка повинна бути менше 10^(-5)
.