#arc136a. [arc136_a]A ↔ BB
[arc136_a]A ↔ BB
题目描述
给定一个长度为的字符串,由字符A
、B
、C
组成。
你可以任意次以任意顺序执行以下两种操作。
- 选择中的一个
A
,删除它,并在该位置插入BB
。 - 选择中的相邻两个
BB
,删除它们,并在该位置插入A
。
找到可能的情况下字典序最小的字符串,即在经过这些操作后的最小字符串。
什么是字典序?
简单来说,字典序就是单词在字典中的顺序。更正式地说,我们用下面的算法来确定不同字符串和之间的字典序。
下面,设表示的第个字符。另外,如果在字典序上小于,我们将这一事实表示为;如果在字典序上大于,我们将这一事实表示为。
- 设为和长度中较小的值。对于每个,我们检查和是否相同。
- 如果存在一个使得,设是最小的这样的。然后,我们比较和。如果按字母顺序排在之前,我们确定并退出;如果按字母顺序排在之后,我们确定并退出。
- 如果不存在使得,我们比较和的长度。如果的长度小于的长度,我们确定并退出;如果的长度大于的长度,我们确定并退出。
约束条件
- 是一个由字符
A
、B
、C
组成的长度为的字符串。
输入
从标准输入读入数据。
输入的格式如下:
输出
打印答案。
示例输入 1
4
CBAA
示例输出 1
CAAB
我们进行如下操作:
- 最初,
CBAA
。 - 删除第三个字符
A
,同时在该位置插入BB
,得到CBBBA
。 - 删除第二个和第三个字符
BB
,同时在该位置插入A
,得到CABA
。 - 删除第四个字符
A
,同时在该位置插入BB
,得到CABBB
。 - 删除第三个和第四个字符
BB
,同时在该位置插入A
,得到CAAB
。
我们无法使比CAAB
更小。因此,答案是CAAB
。
示例输入 2
1
A
示例输出 2
A
我们不进行任何操作。
示例输入 3
6
BBBCBB
示例输出 3
ABCA