#ATarc136a. [ARC136A] A ↔ BB
[ARC136A] A ↔ BB
题目描述
给定一个由 A、B、C 组成、长度为 的字符串 。
你可以对 进行如下两种操作,操作的顺序和次数不限:
- 从 中选择一个
A并删除,在该位置写入新的BB。 - 从 中选择一对相邻的
BB并删除,在该位置写入新的A。
请你求出所有可能通过上述操作得到的 中,字典序最小的字符串。
什么是字典序?字典序简单来说就是“单词在字典中的排列顺序”。更严格地说,判断两个不同字符串 和 的大小的算法如下:
设 的第 个字符记为 。若 字典序小于 ,记作 ;若大于,记作 。
- 取 和 中较短的字符串长度为 ,依次比较 的 和 是否相同。
- 若存在 的 ,取最小的此类 为 ,比较 和 ,若 的字母顺序小于 ,则 ,否则 ,算法结束。
- 若所有 ,则比较长度,若 比 短,则 ,否则 ,算法结束。
输入格式
输入从标准输入读入,格式如下:
输出格式
请输出答案。
样例 1
输入
4
CBAA
输出
CAAB
样例 2
输入
1
A
输出
A
样例 3
输入
6
BBBCBB
输出
ABCA
说明/提示
限制条件
- 是由
A、B、C组成的长度为 的字符串
样例解释 1
可以按如下方式操作:
- 初始时,
CBAA。 - 删除第 3 个字符的
A,写入BB,CBBBA。 - 删除第 2、3 个字符的
BB,写入A,CABA。 - 删除第 4 个字符的
A,写入BB,CABBB。 - 删除第 3、4 个字符的
BB,写入A,CAAB。
无法将 变为比 CAAB 字典序更小的字符串。因此答案为 CAAB。
样例解释 2
一次操作都不进行。
由 ChatGPT 4.1 翻译