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 完成