P15490 [IOI 2004] Polygon 多边形
题目描述
多边形由其边界上或边界内的所有点组成。
如果对于一个多边形的任意两点 $X$ 和 $Y$,连接 $X$ 和 $Y$ 的线段位于多边形内部,那么这个多边形是一个凸多边形。本任务中的所有多边形均为至少包含两个顶点,且多边形中的所有顶点互不相同且坐标均为整数。多边形的顶点不会出现三点共线。下文中的“多边形”一词均指此类多边形。
给定两个多边形 $A$ 和 $B$,$A$ 与 $B$ 的闵可夫斯基和包含所有形如 $(x1+x2, y1+y2)$ 的点的集合,其中 $(x1, y1)$ 为集合 $A$ 中的一点,$(x2, y2)$ 为集合 $B$ 中的一点。事实证明多边形的闵可夫斯基和也是一个多边形。下图展示了一个示例:两个三角形及其闵可夫斯基和。

我们研究了闵可夫斯基和的逆运算。对于给定的多边形 $P$,我们正在寻找两个多边形 $A$ 和 $B$,满足:
- $P$ 是 $A$ 和 $B$ 的闵可夫斯基和,
- $A$ 有 $2$ 到 $4$ 个不同的顶点,即它是一条线段($2$ 个顶点),一个三角形($3$ 个顶点)或一个四边形($4$ 个顶点),
- $A$ 应该有尽可能多的顶点,即:
- 如果可能的话,$A$ 应该是四边形,
- 如果 $A$ 不能是四边形而可能是三角形,它应该是三角形,
- 否则它应该是一条线段。
显然,$A$ 和 $B$ 都不能等于 $P$,因为这样另一个就必须等于一个点,就不是合法的多边形。
您会收到一组输入文件,每个文件都包含一个多边形 $P$ 的描述。
您应该按照上述要求找到多边形 $A$ 和 $B$,并创建一个输出文件给出 $A$ 和 $B$ 的描述。对于给定的输入文件,多边形 $A$ 和 $B$ 总是存在。如果有许多正确的结果,您应该找到并输出其中一个。
你不应该提交任何程序,只应该提交输出文件。
输入格式
在名为 `polygon1.in` 到 `polygon10.in` 的文本文件中为您提供了 `10` 个问题实例,其中 `polygon` 后的数字是输入编号。
每个输入文件的格式如下。第一行包含一个整数 $N$,表示多边形 $P$ 的顶点数。
以下 $N$ 条线以逆时针顺序描述顶点,一个顶点一行。第 $I+1$ 行(对于 $I=1,2,\ldots,N$)包含两个整数 $X_I$ 和 $Y_I$,用空格隔开,表示多边形第 $I$ 个顶点的坐标。所有输入坐标均为非负整数。
输出格式
您需要提交 $10$ 个与给定输入文件相对应的输出文件,这些文件描述了所需的多边形 $A$ 和 $B$。第一行包含文本:
其中整数 $I(1\le I\le10)$ 是相应输入文件的编号。
输出格式与输入格式类似。
第二行包含一个整数 $N_A$,表示 $A$ 中的顶点数($2\le N_A\le 4$)。以下 $N_A$ 行按逆时针顺序描述了 $A$ 的顶点,每行一个顶点。第 $I+2$ 行(对于 $I=1,2,\ldots,N_A$)包含由空格分隔的两个整数 $X$ 和 $Y$,表示多边形 $A$ 的第 $I$ 个顶点的坐标。
第 $N_A+3$ 行包含一个整数 $N_B$,表示 $B$ 中的顶点数($2\le N_B$)。以下 $N_B$ 行按逆时针顺序描述了 $B$ 的顶点,每行一个顶点。第 $N_A+J+3$ 行(对于 $J=1,2,\ldots,N_B$)包含由空格分隔的两个整数 $X$ 和 $Y$,表示多边形 $B$ 的第 $J$ 个顶点的坐标。
说明/提示
### 样例解释
对于样例输入,两种输出都是正确的,因为两种情况 $A$ 都是三角形,且 $A$ 不能是四边形。

