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

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


京公网安备 11011102002149号