#P17574. PM4559 凸多边形交叠

PM4559 凸多边形交叠

题目描述

给定两个凸多边形。两个多边形的顶点均按逆时针顺序给出,并且面积均非零。保证任意一个多边形的顶点都不会恰好落在另一个多边形的边上。

请计算两个多边形重叠区域的面积。

输入格式

第一行输入整数 nn,表示第一个多边形的顶点数。

接下来 nn 行,每行两个整数 x,yx,y,按逆时针顺序给出第一个多边形的顶点。

随后输入整数 mm,表示第二个多边形的顶点数。

接下来 mm 行,每行两个整数 x,yx,y,按逆时针顺序给出第二个多边形的顶点。

输出格式

输出一个实数,表示两个多边形重叠区域的面积。

当你的答案与标准答案的绝对误差或相对误差小于 10910^{-9} 时视为正确。

样例 1

输入

3
00 00
02 00
00 03
4
1 1
3 1
3 3
1 3

输出

0.08333333333333326

样例 2

输入

4
-1 -1
1 -1
1 1
-1 1
8
-2 -2
0 -2
2 -2
2 0
2 2
0 2
-2 2
-2 0

输出

4.0

当一个多边形完全包含另一个多边形时,重叠面积就是较小多边形的面积。

样例 3

输入

3
-1 -1
-2 -1
-1 -2
3
1 1
2 1
1 2

输出

0.0

数据范围

  • 3n,m503\le n,m\le50
  • 所有顶点坐标均为 [1000,1000][-1000,1000] 内的整数;
  • 两个多边形均为凸多边形,且面积非零;
  • 顶点按逆时针顺序给出;
  • 任意一个多边形的顶点都不会落在另一个多边形的边上。