CF1984A.Strange Splitting

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Strange Splitting

题目描述

定义一个非空数组的 范围 为数组中的最大值减去最小值。例如,数组 [1,4,2] [1,4,2] 的范围是 41=3 4-1=3

给定一个长度为 n3 n \geq 3 的数组 a1,a2,,an a_1, a_2, \ldots, a_n 。保证数组 a a 是已排序的。

你需要将数组 a a 中的每个元素涂成红色或蓝色,使得:

  • 红色元素的范围不等于蓝色元素的范围,并且
  • 至少有一种颜色的元素存在。

如果不存在这样的涂色方案,你应该报告这一点。如果存在多个有效的涂色方案,你可以输出其中任意一个。

输入格式

第一行包含一个整数 t t 1t100 1 \leq t \leq 100 )——测试用例的数量。

每个测试用例的第一行包含一个整数 n n 3n50 3 \leq n \leq 50 )——数组的长度。

每个测试用例的第二行包含 n n 个整数 a1,a2,,an a_1, a_2, \ldots, a_n 1ai109 1 \leq a_i \leq 10^9 )。保证 $a_1 \leq a_2 \leq \ldots \leq a_{n - 1} \leq a_{n}$。

输出格式

对于每个测试用例,如果无法对 a a 进行涂色以满足所有约束条件,则输出 NO

否则,首先输出 YES

然后,输出一个长度为 n n 的字符串 s s 。对于 1in 1 \leq i \leq n ,如果你将 ai a_i 涂成红色,则 si s_i 应为 R;如果你将 ai a_i 涂成蓝色,则 si s_i 应为 B

说明/提示

在第一个测试用例中,给定数组 [1,1,2,2] [1, 1, 2, 2] ,我们可以将第二个元素涂成蓝色,其余元素涂成红色;那么红色元素 [1,2,2] [1, 2, 2] 的范围是 21=1 2-1=1 ,蓝色元素 [1] [1] 的范围是 11=0 1-1=0

在第二个测试用例中,我们可以将第一、第二、第四和第五个元素 [1,2,4,5] [1, 2, 4, 5] 涂成蓝色,其余元素 [3] [3] 涂成红色。

红色元素的范围是 33=0 3 - 3 = 0 ,蓝色元素的范围是 51=4 5 - 1 = 4 ,两者不同。

在第三个测试用例中,可以证明无法对 a=[3,3,3] a = [3, 3, 3] 进行涂色以满足约束条件。


翻译由 DeepSeek V3 完成

样例

7
4
1 1 2 2
5
1 2 3 4 5
3
3 3 3
4
1 2 2 2
3
1 2 2
3
1 1 2
3
1 9 84
YES
RBRR
YES
BBRBB
NO
YES
RBBR
YES
RRB
YES
BRR
YES
BRB

在线编程 IDE

建议全屏模式获得最佳体验