CF1984A.Strange Splitting

入门

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

定义一个非空数组的 范围 为数组中的最大值减去最小值。例如,数组 $ [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

    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

    输出#1

    YES
    RBRR
    YES
    BBRBB
    NO
    YES
    RBBR
    YES
    RRB
    YES
    BRR
    YES
    BRB

说明/提示

在第一个测试用例中,给定数组 $ [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 完成

输入解题思路,AI测评打分。不知道怎么写?

首页