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 翻译