CF1984A Strange Splitting
题目描述
定义一个非空数组的 **范围** 为数组中的最大值减去最小值。例如,数组 $ [1,4,2] $ 的范围是 $ 4-1=3 $。
给定一个长度为 $ n \geq 3 $ 的数组 $ a_1, a_2, \ldots, a_n $。保证数组 $ a $ 是已排序的。
你需要将数组 $ a $ 中的每个元素涂成红色或蓝色,使得:
- 红色元素的范围不等于蓝色元素的范围,并且
- 至少有一种颜色的元素存在。
如果不存在这样的涂色方案,你应该报告这一点。如果存在多个有效的涂色方案,你可以输出其中任意一个。
输入格式
第一行包含一个整数 $ t $($ 1 \leq t \leq 100 $)——测试用例的数量。
每个测试用例的第一行包含一个整数 $ n $($ 3 \leq n \leq 50 $)——数组的长度。
每个测试用例的第二行包含 $ n $ 个整数 $ a_1, a_2, \ldots, a_n $($ 1 \leq a_i \leq 10^9 $)。保证 $ a_1 \leq a_2 \leq \ldots \leq a_{n - 1} \leq a_{n} $。
输出格式
对于每个测试用例,如果无法对 $ a $ 进行涂色以满足所有约束条件,则输出 `NO`。
否则,首先输出 `YES`。
然后,输出一个长度为 $ n $ 的字符串 $ s $。对于 $ 1 \leq i \leq n $,如果你将 $ a_i $ 涂成红色,则 $ s_i $ 应为 `R`;如果你将 $ a_i $ 涂成蓝色,则 $ s_i $ 应为 `B`。
说明/提示
在第一个测试用例中,给定数组 $ [1, 1, 2, 2] $,我们可以将第二个元素涂成蓝色,其余元素涂成红色;那么红色元素 $ [1, 2, 2] $ 的范围是 $ 2-1=1 $,蓝色元素 $ [1] $ 的范围是 $ 1-1=0 $。
在第二个测试用例中,我们可以将第一、第二、第四和第五个元素 $ [1, 2, 4, 5] $ 涂成蓝色,其余元素 $ [3] $ 涂成红色。
红色元素的范围是 $ 3 - 3 = 0 $,蓝色元素的范围是 $ 5 - 1 = 4 $,两者不同。
在第三个测试用例中,可以证明无法对 $ a = [3, 3, 3] $ 进行涂色以满足约束条件。
---
翻译由 DeepSeek V3 完成