atcoder#ARC136A. [ARC136A] A ↔ BB
[ARC136A] A ↔ BB
题目描述
A
, B
, C
からなる長さ の文字列 が与えられます.
あなたは, に対して以下の 種類の操作を好きな順序で好きな回数行うことができます.
- の中で
A
を選び,消す. 文字を消した位置に,新たにBB
を書き込む. - の中で隣接する 文字であって,
BB
となっているものを選び,消す. 文字を消した位置に,新たにA
を書き込む.
操作を終えたあとの としてあり得る文字列のうち,辞書順最小のものを求めてください.
辞書順とは? 辞書順とは簡単に説明すると「単語が辞書に載っている順番」を意味します。より厳密な説明として、相異なる文字列 と文字列 の大小を判定するアルゴリズムを以下に説明します。
以下では の 文字目の文字を のように表します。また、 が より辞書順で小さい場合は 、大きい場合は と表します。
- と のうち長さが短い方の文字列の長さを とします。 に対して と が一致するか調べます。
- である が存在する場合、そのような のうち最小のものを とします。そして、 と を比較して、 がアルファベット順で より小さい場合は 、大きい場合は と決定して、アルゴリズムを終了します。
- である が存在しない場合、 と の長さを比較して、 が より短い場合は 、長い場合は と決定して、アルゴリズムを終了します。
输入格式
入力は以下の形式で標準入力から与えられる.
输出格式
答えを出力せよ.
题目大意
有一个由 A
、B
和 C
构成的字符串 ,你每次可以把一个 A
换成 BB
,或把一个 BB
换成 A
。
求你所能得到的字典序最小的字符串。
4
CBAA
CAAB
1
A
A
6
BBBCBB
ABCA
提示
制約
- は
A
,B
,C
からなる長さ の文字列
Sample Explanation 1
以下のように操作すればよいです. - 最初,CBAA
である. - の 文字目の A
を消し,BB
を書き込む.CBBBA
となる. - の 文字目の BB
を消し,A
を書き込む.CABA
となる. - の 文字目の A
を消し,BB
を書き込む.CABBB
となる. - の 文字目の BB
を消し,A
を書き込む.CAAB
となる. を CAAB
より辞書順で小さい文字列にすることはできません. よって答えは CAAB
になります.
Sample Explanation 2
一度も操作を行いません.