atcoder#AGC036E. [AGC036E] ABC String

[AGC036E] ABC String

配点 : 15001500

問題文

A,B,C からなる文字列 SS が与えられます。

SS の連続とは限らない部分列 xx であって、次の条件をすべて満たすもののうち、最長のものを 11 つ求めてください。 なお、SS の部分列とは、SS から 00 個以上の文字を削除して得られる文字列を意味します。

  • xx に含まれる A,B,C それぞれの個数は全て等しい。
  • xx の中で同じ文字は隣り合わない。

制約

  • 1S1061 \leq |S| \leq 10^6
  • SSA,B,C からなる。

入力

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

SS

出力

条件を満たす最長の部分列を 11 つ出力せよ。 解が複数ある場合は、どれを出力しても正解とみなされる。

ABBCBCAB
ACBCAB

SS の部分列として、ACBCAB を考えると、これは条件を満たしており、またこれが最長です。 また、ABCBCA も条件を満たす最長の部分列です。 ABCBCAB, ABBCCA なども SS の部分列ですが、これらは条件を満たしません。

ABABABABACACACAC
BABCAC
ABCABACBCBABABACBCBCBCBCBCAB
ACABACABABACBCBCBCBCA
AAA

条件を満たす部分列が空文字列のみのこともあります。