#2333. 基因

基因

基因

题目描述

仅由 A,T,C,G\mathbb{A}, \mathbb{T}, \mathbb{C}, \mathbb{G} 四个大写字母构成的一个字符串称作基因序列。对于一个基因序列,基因位段突变形式为 θ\theta 。

首先,对于单位字符,有 $\theta( \mathtt{A} )=\mathtt{T}, \theta( \mathtt{T} )=\mathtt{A}, \theta( \mathtt{C} )=\mathtt{G}, \theta( \mathtt{G} )=\mathtt{C}$。

其次,对于长为 nn 的字符串 xx与1≤i≤j≤n1 \leq i \leq j \leq n ,θ(i,j)\theta( i, j ) 是使用 $\theta( x_{j} ) \theta( x_{j-1} ) \cdots\theta( x_{i} )$ 替代 xx 的第 ii 至 jj 个字符,即先反序排列区间中字符,然后逐个应用单字符修改。

现有一个长度为 nn 的基因序列 XX,求一种选取 1≤i≤j≤n1 \leq i \leq j \leq n 的方式,使得 XX 执行 θ(i,j)\theta( i, j ) 后字典序最小。注意操作对原始字符串仅执行恰好一次,不能不操作。

输入格式

输入一行,一个由 A,T,C,G\mathbb{A}, \mathbb{T}, \mathbb{C}, \mathbb{G} 构成的字符串 X,X, 表示基因序列。其长度记为 nn。

输出格式

输出一行,一个长度为 nn 的字符串,表示 XX 执行某种θ(i,j)\theta( i, j ) 后所有可能结果中,字典序最小的一个。

样例 1

ACGTACGT
AACGACGT

样例一解释

执行 θ(2,4)\theta( 2, 4 ) 。

数据说明

共20个测试点。

对20%20\%数据保证 n≤500n \leq5 0 0 ;

对50%5 0 \%数据保证 n≤5000n \leq5 0 0 0 ;

对70%7 0 \% 数据保证 n≤50000n \leq 50 0 0 0 ;

对100%100\%数据保证 n≤500000n \leq 500000。

下发大样例ex_A1到ex_A4依次符合4种数据范围的要求。

更多样例

以下 4 组大样例取自原题附件: