#arc136a. [arc136_a]A ↔ BB

[arc136_a]A ↔ BB

题目描述

给定一个长度为NN的字符串SS,由字符ABC组成。

你可以任意次以任意顺序执行以下两种操作。

  1. 选择SS中的一个A,删除它,并在该位置插入BB
  2. 选择SS中的相邻两个BB,删除它们,并在该位置插入A

找到可能的情况下字典序最小的字符串,即SS在经过这些操作后的最小字符串。

什么是字典序?

简单来说,字典序就是单词在字典中的顺序。更正式地说,我们用下面的算法来确定不同字符串SSTT之间的字典序。

下面,设SiS_i表示SS的第ii个字符。另外,如果SS在字典序上小于TT,我们将这一事实表示为S<TS<T;如果SS在字典序上大于TT,我们将这一事实表示为S>TS>T

  1. LLSSTT长度中较小的值。对于每个i=1,2,,Li=1,2,\dots,L,我们检查SiS_iTiT_i是否相同。
  2. 如果存在一个ii使得SiTiS_i\neq T_i,设jj是最小的这样的ii。然后,我们比较SjS_jTjT_j。如果SjS_j按字母顺序排在TjT_j之前,我们确定S<TS<T并退出;如果SjS_j按字母顺序排在TjT_j之后,我们确定S>TS>T并退出。
  3. 如果不存在ii使得SiTiS_i\neq T_i,我们比较SSTT的长度。如果SS的长度小于TT的长度,我们确定S<TS<T并退出;如果SS的长度大于TT的长度,我们确定S>TS>T并退出。

约束条件

  • 1N2000001\leq N\leq 200000
  • SS是一个由字符ABC组成的长度为NN的字符串。

输入

从标准输入读入数据。

输入的格式如下:

NN

SS

输出

打印答案。

示例输入 1

4
CBAA

示例输出 1

CAAB

我们进行如下操作:

  • 最初,S=S=CBAA
  • 删除第三个字符A,同时在该位置插入BB,得到S=S=CBBBA
  • 删除第二个和第三个字符BB,同时在该位置插入A,得到S=S=CABA
  • 删除第四个字符A,同时在该位置插入BB,得到S=S=CABBB
  • 删除第三个和第四个字符BB,同时在该位置插入A,得到S=S=CAAB

我们无法使SSCAAB更小。因此,答案是CAAB

示例输入 2

1
A

示例输出 2

A

我们不进行任何操作。

示例输入 3

6
BBBCBB

示例输出 3

ABCA