atcoder#AGC036E. [AGC036E] ABC String

[AGC036E] ABC String

题目描述

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

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

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

输入格式

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

S S

输出格式

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

题目大意

给你一个长度为 nn 的仅包含ABC三种字母的字符串 ss ,现在要你输出一个满足下列要求的最长的 ss 的子序列:

  • ABC三种字符的出现次数相同。
  • 子序列中相邻两个字符不能相同。

如果有多组解,输出任意一组即可。

数据范围:s106|s|\leq 10^6

ABBCBCAB
ACBCAB
ABABABABACACACAC
BABCAC
ABCABACBCBABABACBCBCBCBCBCAB
ACABACABABACBCBCBCBCA
AAA

提示

制約

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

Sample Explanation 1

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

Sample Explanation 4

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