CF2209D Ghostfires
题目描述
OtterZ 决定用幽灵火制造一种武器。他收集了若干红色、绿色和蓝色的幽灵火。他将把一些幽灵火排成一行来制造武器。为了让武器更强大,OtterZ 会使用尽可能多的幽灵火。但是,如果有两个相同颜色的幽灵火相邻,或者在排成一行时中间隔着恰好两个幽灵火(即间隔 2 个位置)时再次出现相同颜色,武器将变得无法控制。
具体来说,OtterZ 收集了 $r$ 个红色幽灵火,$g$ 个绿色幽灵火,和 $b$ 个蓝色幽灵火。他希望构造一个只包含字符 `R`、`G`、`B` 的字符串 $s$,满足下列条件:
- 字符串 $s$ 中 `R`、`G`、`B` 的出现次数分别不超过 $r$、$g$、$b$。
- 对于所有 $1 \le i \le |s|-1$,有 $s_i \ne s_{i+1}$。
- 对于所有 $1 \le i \le |s|-3$,有 $s_i \ne s_{i+3}$。
- $s$ 的长度应尽可能长。
请帮助 OtterZ 构造一个满足要求的排列。虽然可能存在多个可行方案,但只需输出任意一个即可。
输入格式
每个测试包含多组数据。第一行包含测试组数 $t$($1 \le t \le 10^4$)。
接下来的 $t$ 行,每行为一组测试数据,包含三个整数 $r$、$g$、$b$($0 \le r,g,b \le 10^6$,$r+g+b>0$),分别表示红色、绿色和蓝色幽灵火的数量。
保证所有测试数据中 $r+g+b$ 的总和不超过 $10^6$。
输出格式
对于每组查询,输出一个只包含字符 `R`、`G`、`B` 的字符串 $s$,其中 $s_i$ 为 `R`、`G` 或 `B`,表示第 $i$ 个幽灵火的颜色为红色、绿色或蓝色。
如果有多种答案,输出任意一个即可。
说明/提示
对于第一个测试用例,`B` 是唯一合法的构造方式。
对于第二个测试用例,`RGB`、`RBG`、`GRB`、`BRG` 和 `BGR` 都是正确答案。
对于第三个测试用例,`GG` 和 `GGG` 不合法,因为 $s_1 = s_2$。
由 ChatGPT 5 翻译。