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测评打分。不知道怎么写?