AT_code_festival_china_c Regular Polygon

题目描述

给定 $N$ 个整数点在直角坐标平面上,你希望从中选择一些点,通过连接这些点形成一个正多边形,并且希望选择的点数尽可能多,使得正多边形的顶点数最大。 请确定应选择哪些点,以构成顶点数最多的正多边形。如果有多个答案,可以任选其一。 如果无法从给定点中构成任何正多边形,则输出 $0$。

输入格式

输入格式如下: > $N$ > $x_1$ $y_1$ > $x_2$ $y_2$ > $\vdots$ > $x_N$ $y_N$ - 第一行给出一个整数 $N\ (1 \leq N \leq 1,000)$,表示给定的整数点的数量。 - 接下来的 $N$ 行,每行包含两个整数 $x_i, y_i\ (-10^9 \leq x_i, y_i \leq 10^9)$,分别表示第 $i$ 个点的 $x$ 坐标和 $y$ 坐标。 - 保证所有给定的点两两不同。也就是说,对于任意 $i \neq j$,都有 $(x_i, y_i) \neq (x_j, y_j)$。

输出格式

第一行输出 $m$,表示你选择的点数(即所构成的正多边形的顶点数)。 接下来的 $m$ 行,按升序输出所选点的编号(编号从 $1$ 开始)。 如果无法从给定点中构成任何正多边形,则只输出一行 $0$。

说明/提示

### 问题说明 你被给定 $N$ 个整数点在直角坐标平面上。你希望从中选择一些点,通过连接这些点形成一个正多边形,并且希望选择的点数尽可能多,使得正多边形的顶点数最大。 请确定应选择哪些点,以构成顶点数最多的正多边形。如果有多个答案,可以任选其一。 ### 样例解释 1 在给定的 $6$ 个点中,你可以选择 $4$ 个点 $(1,0),(-1,0),(0,1),(0,-1)$ 构成一个正方形,这是可以构成的顶点数最多的正多边形。因此答案为 $4$ 以及这些点的编号。$4$ 个点 $(-1,0),(1,0),(1,2),(-1,2)$ 也可以构成一个正方形,因此它们的编号 $\{1,2,5,6\}$ 也是正确答案。 ### 样例解释 2 给定的点都在一条直线上,无法构成任何正多边形。 由 ChatGPT 4.1 翻译