atcoder#ARC136A. [ARC136A] A ↔ BB

[ARC136A] A ↔ BB

题目描述

A, B, C からなる長さ N N の文字列 S S が与えられます.

あなたは,S S に対して以下の 2 2 種類の操作を好きな順序で好きな回数行うことができます.

  • S S の中で A を選び,消す. 文字を消した位置に,新たに BB を書き込む.
  • S S の中で隣接する 2 2 文字であって,BB となっているものを選び,消す. 文字を消した位置に,新たに A を書き込む.

操作を終えたあとの S S としてあり得る文字列のうち,辞書順最小のものを求めてください.

辞書順とは? 辞書順とは簡単に説明すると「単語が辞書に載っている順番」を意味します。より厳密な説明として、相異なる文字列 S S と文字列 T T の大小を判定するアルゴリズムを以下に説明します。

以下では S S i i 文字目の文字を Si S_i のように表します。また、 S S T T より辞書順で小さい場合は S < T S\ \lt\ T 、大きい場合は S > T S\ \gt\ T と表します。

  1. S S T T のうち長さが短い方の文字列の長さを L L とします。i=1,2,,L i=1,2,\dots,L に対して Si S_i Ti T_i が一致するか調べます。
  2. Si  Ti S_i\ \neq\ T_i である i i が存在する場合、そのような i i のうち最小のものを j j とします。そして、Sj S_j Tj T_j を比較して、 Sj S_j がアルファベット順で Tj T_j より小さい場合は S < T S\ \lt\ T 、大きい場合は S > T S\ \gt\ T と決定して、アルゴリズムを終了します。
  3. Si  Ti S_i\ \neq\ T_i である i i が存在しない場合、 S S T T の長さを比較して、S S T T より短い場合は S < T S\ \lt\ T 、長い場合は S > T S\ \gt\ T と決定して、アルゴリズムを終了します。

输入格式

入力は以下の形式で標準入力から与えられる.

N N S S

输出格式

答えを出力せよ.

题目大意

有一个由 ABC 构成的字符串 SS,你每次可以把一个 A 换成 BB,或把一个 BB 换成 A

求你所能得到的字典序最小的字符串。

4
CBAA
CAAB
1
A
A
6
BBBCBB
ABCA

提示

制約

  • 1  N  200000 1\ \leq\ N\ \leq\ 200000
  • S S A, B, C からなる長さ N N の文字列

Sample Explanation 1

以下のように操作すればよいです. - 最初,S= S= CBAA である. - S S 3 3 文字目の A を消し,BB を書き込む.S= S= CBBBA となる. - S S 2,3 2,3 文字目の BB を消し,A を書き込む.S= S= CABA となる. - S S 4 4 文字目の A を消し,BB を書き込む.S= S= CABBB となる. - S S 3,4 3,4 文字目の BB を消し,A を書き込む.S= S= CAAB となる. S S CAAB より辞書順で小さい文字列にすることはできません. よって答えは CAAB になります.

Sample Explanation 2

一度も操作を行いません.