题目描述
在数学上,一个点集合 S 的凸包 (convex hull) 定义为包含 S 的最小凸集合,记作 Conv(S)。在平面上,若 S 为非空有限点集合,则 Conv(S) 为一包含内部与边界的最小凸多边形,或其退化形式。另一方面,设 E1 与 E2 为平面上的两个点集合。若存在某个二维向量 v,满足
P∈E1⟺P+v∈E2,
则称 E1 与 E2 经过平移后重合。
现给定平面上的有限点集合 S1 与 S2,并考虑它们的非空子集合 T1⊆S1 与 T2⊆S2。已知子凸包 Conv(T1) 与子凸包 Conv(T2) 面积皆大于 0 且经过平移后重合,请求出 Conv(T1) 所有可能的面积。
以下展示两个子凸包平移后重合的例子。

输入格式
n m
x1 y1
x2 y2
⋮
xn yn
ξ1 η1
ξ2 η2
⋮
ξm ηm
- n 代表 S1 的集合大小。
- m 代表 S2 的集合大小。
- xi,yi 代表 S1 包含点 (xi,yi)。
- ξi,ηi 代表 S2 包含点 (ξi,ηi)。
输出格式
k
a1
a2
⋮
ak
样例输入1
6 5
0 2
1 1
1 3
2 3
3 2
4 2
2 0
2 1
2 2
3 1
5 1
样例输出1
1
6
- k 代表若子凸包 Conv(T1) 与子凸包 Conv(T2) 经过平移后重合,Conv(T1) 所有可能的非 0 面积数。
- ai 为一整数,代表 Conv(T1) 所有可能的非 0 面积中,第 i 小的数的两倍。
说明/提示
测试数据限制
- 3≤n≤40。
- 3≤m≤40。
- 0≤xi≤20。
- 0≤yi≤20。
- 0≤ξi≤20。
- 0≤ηi≤20。
- 对任意 i,j∈{1,2,…,n},若 i=j,则 (xi,yi)=(xj,yj)。
- 对任意 i,j∈{1,2,…,m},若 i=j,则 (ξi,ηi)=(ξj,ηj)。
- 输入的数皆为整数。
评分说明
本题共有四组子任务,条件限制如下所示。
每一组可有一或多个测试数据,该组所有测试数据皆需答对才可获得该组分数。
子任务 |
分数 |
额外输入限制 |
1 |
7 |
所有可能的非 0 面积必能从 T1 与 T2 中各选 3 个点得到 |
2 |
23 |
n+m≤30 |
3 |
41 |
S1=S2 |
4 |
29 |
无额外限制 |