#P38. [KBC002E] String 2

[KBC002E] String 2

版权声明

本题版权归 Long Long OJ 所有。

题目描述

有一种变换 ff,其定义如下:f(A)T,f(\tt{A})\to\tt{T},f(C)G,f(\tt{C})\to\tt{G},f(G)C,f(\tt{G})\to\tt{C},f(T)Af(\tt{T})\to\tt{A}

给定一个只含 ACGT\tt{ACGT} 的字符串 SS,请确定 SS 在进行操作后可能出现的最小字典序:

  • 选出 SS 的一个非空子串 TT
  • TT 中的每个字符施加一次变换 ff
  • 翻转子串 TT

输入格式

本题有多组数据。

对于每组数据,输入一行一个只含 ACGT\tt{ACGT} 的字符串 SS

输出格式

对于每组数据,输出一行一个字符串,表示 SS 在操作后可能出现的最小字典序。

样例

ACGTACGT
ACACACAC
AACGACGT
ACACACAG

提示

样例解释:

对于第 11 组数据,最优解在选出 SS 的第 2244 个字符(ACGTACGT\tt{A\color{red}{CGT}\color{black}ACGT})时取到。

对于第 22 组数据,最优解在选出 SS 的最后一个字符(ACACACAC\tt{ACACACA\color{red}{C}})时取到。


本题共 55 个测试点,每个测试点 2020 分:

  1. SS 在样例输入中出现过。
  2. S=1|S|=1
  3. S8|S| \le 8
  4. SS 中的每个字符都相同。
  5. 无特殊限制。

对于 100%100\% 的数据,1S1051 \le |S| \le 10^5

保证单个测试点内所有数据中 S|S| 的和不超过 10610^6