机床技术的发展永无止境。最近的一项提议是采用更灵活的机床,在这种机床中,不仅工件,而且切削刀头也围绕平行的轴同步旋转。当机床启动时,工件和切削刀头开始以相同的角速度旋转,即向相同的方向并以相同的转速旋转。当与切削刀头发生碰撞时,工件中与切削刀头相交的部分会被切除。
为了展示该机制的实用性,请你模拟这种机床的切削过程。
尽管工件和切削刀头的形状可能很复杂,但只需关注它们在垂直于旋转轴的平面上的横截面即可。我们在垂直于两根轴的平面上引入一个 $xy$ 坐标系,其中工件的旋转中心位于原点 $(0, 0)$,而切削刀头的旋转中心位于 $(L, 0)$。你可以假设工件和切削刀头都具有多边形横截面,但不一定是凸多边形。
注意,即使工件的这个横截面被分成了两个或多个部分,工件在其他横截面上仍然是连通的。
我们将旋转前工件内部(即在内部且不在边界上)的格点($x$ 和 $y$ 坐标均为整数的点)称为“兴趣点”,简称 POI。
我们感兴趣的是,在工件和切削刀头同时旋转 360 度后,还剩下多少个 POI。如果 POI 严格位于最终工件的内部,则称该 POI 仍然存在。请编写一个程序,计算给定工件和切削刀头配置下剩余的 POI 数量。
图 H.1(a) 展示了样例输入 1 中给出的工件(黑线)和切削刀头(蓝线)。两个圆圈表示工件和切削刀头的旋转中心。红色的十字标记表示 POI。
图 H.1(b) 展示了旋转方向为顺时针时,工件和切削刀头在旋转过程中的状态。浅蓝色区域表示被切除的区域。
图 H.1(c) 展示了该样例的结果。注意,其中一个 POI 位于最终形状的边缘上。你不应该计算该点。最终剩余了 8 个 POI。
图 H.1. 样例 1 中的工件和切削刀头
输入格式
输入包含单个测试用例,格式如下:
$M$ $N$ $L$ $x_{w1}$ $y_{w1}$ $\vdots$ $x_{wM}$ $y_{wM}$ $x_{c1}$ $y_{c1}$ $\vdots$ $x_{cN}$ $y_{cN}$
第一行包含三个整数。$M$ 是工件的顶点数 ($4 \le M \le 20$),$N$ 是切削刀头的顶点数 ($4 \le N \le 20$)。$L$ 指定了切削刀头旋转中心的位置 ($1 \le L \le 10000$)。
接下来的 $M$ 行,每行包含两个整数。第 $i$ 行包含 $x_{wi}$ 和 $y_{wi}$,表示工件第 $i$ 个顶点的坐标为 $(x_{wi}, y_{wi})$。顶点按逆时针顺序给出。
接下来的 $N$ 行是切削刀头顶点的坐标,方式相同,但坐标是相对于其旋转中心 $(L, 0)$ 的偏移量。也就是说,切削刀头第 $j$ 个顶点的坐标为 $(L + x_{cj}, y_{cj})$。
你可以假设对于 $1 \le i \le M$ 和 $1 \le j \le N$,$-10000 \le x_{wi}, y_{wi}, x_{cj}, y_{cj} \le 10000$。
工件和切削刀头在初始旋转位置的所有边都平行于 $x$ 轴或 $y$ 轴。换句话说,对于每个 $i$ ($1 \le i \le M$),$x_{wi} = x_{wi'}$ 或 $y_{wi} = y_{wi'}$ 成立,其中 $i' = (i \pmod M) + 1$。边交替平行于 $x$ 轴和 $y$ 轴。切削刀头的情况也一样。
你可以假设工件的横截面形成一个简单多边形,即除了相邻边外,没有两条边有公共点。切削刀头的情况也一样。在开始旋转之前,工件和切削刀头不接触也不重叠。
注意,$(0, 0)$ 不一定在工件内部,$(L, 0)$ 也不一定在切削刀头内部。
输出格式
输出剩余在工件内部的 POI 数量。
样例
样例输入 1
4 6 5 -2 5 -2 -1 2 -1 2 5 -2 1 -2 0 0 0 0 -2 2 -2 2 1
样例输出 1
8
样例输入 2
14 14 6000 -3000 3000 -3000 -3000 3000 -3000 3000 -2000 2000 -2000 2000 -1000 1000 -1000 1000 0 0 0 0 1000 -1000 1000 -1000 2000 -2000 2000 -2000 3000 3000 3000 -3000 3000 -3000 2000 -2000 2000 -2000 1000 -1000 1000 -1000 0 0 0 0 -1000 1000 -1000 1000 -2000 2000 -2000 2000 -3000 3000 -3000
样例输出 2
6785772
样例输入 3
12 12 11 -50 45 -50 -45 40 -45 40 25 -10 25 -10 -5 0 -5 0 15 30 15 30 -35 -40 -35 -40 45 50 -45 50 45 -40 45 -40 -25 10 -25 10 5 0 5 0 -15 -30 -15 -30 35 40 35 40 -45
样例输出 3
966
样例输入 4
20 4 11 -5 5 -5 -10 -4 -10 -4 -1 -3 -1 -3 -10 1 -10 1 -4 0 -4 0 -1 1 -1 1 0 4 0 4 -1 10 -1 10 3 1 3 1 4 10 4 10 5 0 0 3 0 3 3 0 3
样例输出 4
64