Перетин двох призм
Припустимо, що P_1 — це призма нескінченної висоти з віссю, паралельною до z-осі, а P_2 — також призма нескінченної висоти з віссю, паралельною до y-осі. Призма P_1 визначається багатокутником C_1, який є перерізом P_1 з xy-площиною, а призма P_2 визначається багатокутником C_2, що є перерізом P_2 з xz-площиною.
Рисунок 1 демонструє два перерізи, які відповідають першому набору даних у зразку введення, а Рисунок 2 ілюструє взаємозв'язок між призмами та їх перерізами.
Рисунок 1: Перерізи призм
Рисунок 2: Призми та їх перерізи
Рисунок 3: Перетин двох призм
Рисунок 3 показує перетин двох призм, P_1 та P_2, зображених на Рисунку 2.
Напишіть програму, яка обчислює об'єм перетину двох призм.
Вхідні дані
Вхідні дані складаються з послідовності наборів даних. Кількість наборів даних менша ніж 200.
Кожен набір даних має наступний формат:
m n x_11 y_11 x_12 y_12
... x_1m y_1m x_21 z_21 x_22 z_22
... x_2n z_2n
Тут m та n — це цілі числа (3 ≤ m ≤ 100, 3 ≤ n ≤ 100), що вказують на кількість вершин багатокутників C_1 та C_2 відповідно.
x_1i, y_1i, x_2j та z_2j — це цілі числа в діапазоні від −100 до 100 включно. Координати (x_1i, y_1i) та (x_2j, z_2j) представляють позиції i-ї та j-ї вершин багатокутників C_1 та C_2 відповідно.
Послідовності цих позицій вершин задані в протилежному напрямку за годинниковою стрілкою або на xy-площині, або на xz-площині, як показано на Рисунку 1.
Ви можете припустити, що всі багатокутники є опуклими, тобто всі внутрішні кути багатокутників менші ніж 180 градусів. Також можна припустити, що всі багатокутники є простими, тобто межа кожного багатокутника не перетинає і не торкається самої себе.
Кінець введення позначається рядком, що містить два нулі.
Вихідні дані
Для кожного набору даних виведіть об'єм перетину двох призм, P_1 та P_2, у вигляді десяткового числа в окремому рядку.
Жодне з вихідних значень не повинно мати похибку більше ніж 0.001. Вихід не повинен містити жодних інших зайвих символів.