AT_arc179_f [ARC179F] All the Same
题目描述
给你一个只包含字符 `A` 和 `B` 的长度为 $N$ 的字符串 $S$。
需要找到一个由字符 `1`、`2` 和 `3` 组成的长度为 $N$ 的字符串 $X$,并定义其**得分**如下:
- 初始化四个变量 $h_1, h_2, h_3, P$ 为 $0$。
- 然后依次处理 $i = 1, 2, \dots, N$:
- 若 $S$ 的第 $i$ 个字符为 `A`,则执行操作 A;若为 `B`,则执行操作 B。此处,$d$ 代表 $X$ 的第 $i$ 个字符对应的数字。
- **操作 A**:将 $h_d$ 增加 $2$。
- **操作 B**:若 $d$ 等于 $2$ 或 $h_d$ 不等于 $h_2$,则将 $P$ 设为 $-10^{100}$;否则将 $h_d$ 和 $h_2$ 各自增加 $1$。
- 如果此时 $h_1$ 等于 $h_2$ 且等于 $h_3$,则将 $P$ 增加 $1$。
- 最终,$P$ 的值即为字符串 $X$ 的得分。
请输出一个能使得分最大的字符串 $X$。
共有 $T$ 个测试用例,请分别求解每个测试用例。
输入格式
输入包含多组测试数据,第一行为整数 $T$,表示测试用例的个数。
每个测试用例包括两行:
第一行为整数 $N$,表示字符串 $S$ 的长度。
第二行是长度为 $N$ 的字符串 $S$。
输出格式
输出共 $T$ 行,每行表示一个测试用例的结果。
第 $i$ 行输出第 $i$ 个测试用例中得到最高得分的字符串 $X$。
如有多种可能的结果,输出任意一种均可。
说明/提示
- $1 \le T \le 10^5$
- $1 \le N \le 10^6$
- $S$ 由字符 `A` 和 `B` 组成
- 所有测试用例中的 $N$ 之和不超过 $10^6$
## 样例解释
以每个字符的处理步骤举例说明变量 $(h_1, h_2, h_3, P)$ 的变化:
- 第一个测试用例处理结果为 $(0, 0, 0, 0) \rightarrow (2, 0, 0, 0) \rightarrow (2, 1, 1, 0) \rightarrow (2, 2, 2, 1) \rightarrow (2, 2, 4, 1)$,所以最大得分为 $1$。
- 第二个测试用例处理结果为 $(0, 0, 0, 0) \rightarrow (2, 0, 0, 0) \rightarrow (2, 2, 0, 0) \rightarrow (2, 2, 2, 1) \rightarrow (2, 4, 2, 1) \rightarrow (4, 4, 2, 1)$,最大得分为 $1$。
- 第三个、第四个和第五个测试用例的得分最大值分别为 $0, 0, 2$。
注意,一个测试用例可能会存在多个得分最大的 $X$,选择其中任意一个输出即可。
**本翻译由 AI 自动生成**