CF1270E Divide Points
题目描述
给定 $n \ge 2$ 个两两不同、坐标为整数的点。你的任务是将这些点划分为两个非空的集合 $A$ 和 $B$,使得满足以下条件:
对于任意两点 $P$ 和 $Q$,在黑板上写下它们之间的[欧几里得距离](https://en.wikipedia.org/wiki/Euclidean_distance):如果它们属于同一组,则用黄色笔写下;如果属于不同组,则用蓝色笔写下。要求所有黄色数字都不等于任何一个蓝色数字。
保证对于任意输入都存在这样的划分。如果存在多种划分方式,你可以输出其中任意一种。
输入格式
第一行包含一个整数 $n$($2 \le n \le 10^3$),表示点的数量。
接下来的 $n$ 行中,第 $i$ 行包含两个整数 $x_i$ 和 $y_i$($-10^6 \le x_i, y_i \le 10^6$),表示第 $i$ 个点的坐标。
保证所有 $n$ 个点两两不同。
输出格式
第一行输出一个整数 $a$($1 \le a \le n-1$),表示集合 $A$ 中点的数量。
第二行输出 $a$ 个整数,表示你选择放入集合 $A$ 的点的编号。
如果有多种答案,输出任意一种即可。
说明/提示
在第一个样例中,我们将点 $(0, 0)$ 放入集合 $A$,将点 $(0, 1)$ 和 $(1, 0)$ 放入集合 $B$。这样,黑板上会有 $1$ 个黄色数字 $\sqrt{2}$,$2$ 个蓝色数字 $1$。
在第二个样例中,我们将点 $(0, 1)$ 和 $(0, -1)$ 放入集合 $A$,将点 $(-1, 0)$ 和 $(1, 0)$ 放入集合 $B$。这样,黑板上会有 $2$ 个黄色数字 $2$,$4$ 个蓝色数字 $\sqrt{2}$。
由 ChatGPT 4.1 翻译