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