#P10097. [ROIR 2023 Day 1] 彩点
[ROIR 2023 Day 1] 彩点
题目背景
翻译自 ROIR 2023 D1T4。
平面上有 个点,分别是 。第 个点的坐标为 。
选择两个点 ()。设 为起始点, 为终止点。以终止点 为中心,从向量 的方向开始按照逆时针顺序将除 以外的点进行排序(角度相同时按照到点 的距离升序排序)。假设排序后的第 个点为 ,则继续重复操作,设 为起始点, 为终止点,按照相同的方法重新排序并计算新的终止点的编号。这个过程循环进行。
在下图中,刚开始时 。按照顺序将除了 以外的点排序,结果是 ,所以下一个终止点应该是 ,起始点是 。
此时 。继续按照规则排序,如左下图,结果是 。所以下一个终止点是 ,起始点是 。
此时 。继续按照规则排序,如右上图,结果是 。所以下一个终止点是 ,起始点是 。此时就回到刚开始的情况,进入了一个循环。
题目描述
我们将 个点中的每个点涂上三种颜色之一。第 个点的颜色如下确定:
- 如果存在点 ,选取点 作为起始点,点 作为终止点,在上面的过程中点 会无数次成为起始点,则将点 涂成绿色。
- 如果点 没有涂成绿色并且存在点 ,选取点 作为起始点,点 作为终止点,在上面的过程中点 至少还能成为起始点一次,则将点 涂成蓝色。
- 如果点 既不是绿色也不是蓝色,则将点 涂成红色。
对于每个点,确定它应该涂成哪种颜色。
输入格式
第一行包含两个整数 和 。
接下来的 行,每行包含两个整数 和 。保证没有两个点重合。
输出格式
输出一行,包含 个字符,字符串的第 个字符表示第 个点的颜色。
绿色点用字母 G
表示,蓝色点用字母 B
表示,红色点用字母 R
表示。
6 4
-1 -1
1 -2
4 -2
2 -4
2 3
-4 -5
GGBBRG
2 1
1 1
2 2
GG
提示
样例 解释:
在前面举的例子中已经知道 构成一个循环,这三个点肯定会被无限次访问,所以应被涂上绿色。
当起始点是 时,可以令终止点为 ,排序后 正好是第四个,这样 就重回起始点了,如下图。所以应该涂蓝。
当起始点是 时,可以选择 为终止点,排序后 正好是第四个。所以 可以涂蓝。当 是起始点时,易得它既不能被涂上绿色也不能被涂上蓝色,所以涂红。
本题使用捆绑测试。
子任务 | 分值 | 特殊性质 |
---|---|---|
,所有点共线 | ||
所有点共线 | ||
,没有蓝色点 | ||
,没有蓝色点 | ||
,所有点构成一个严格凸 边形,且按照逆时针顺序输入 | ||
无 |
对于全部数据,$2 \le n \le 1 000, 1 \le t \le n−1,−10^9 \le x_i, y_i \le 10^9$。