题目描述
对于仅由 d 和 p 组成、长度为 L 的字符串 T,定义 T 经过 180 度旋转后的字符串为 f(T)。更严格地说,f(T) 满足以下条件:
- f(T) 是仅由
d 和 p 组成、长度为 L 的字符串。
- 对于所有满足 1≤i≤L 的整数 i,f(T) 的第 i 个字符与 T 的第 L+1−i 个字符不同。
例如,当 T= ddddd 时,f(T)= ppppp;当 T= dpdppp 时,f(T)= dddpdp。
给定一个仅由 d 和 p 组成、长度为 N 的字符串 S。
你可以进行 0 次或 1 次如下操作:
- 选择一组整数 (L,R),满足 1≤L≤R≤N,取 S 的第 L 个字符到第 R 个字符组成的子串 T。然后,将 S 的第 L 个字符到第 R 个字符替换为 f(T)。
例如,S= dpdpp,(L,R)=(2,4) 时,T= pdp,f(T)= dpd,所以操作后 S 变为 ddpdp。
请输出所有可能得到的 S 中,字典序最小的字符串。
字典序的定义如下:对于字符串 S=S1S2…S∣S∣ 和 T=T1T2…T∣T∣,S 字典序小于 T,当且仅当满足以下两条之一。这里 ∣S∣,∣T∣ 分别表示 S,T 的长度。
- ∣S∣<∣T∣ 且 S1S2…S∣S∣=T1T2…T∣S∣。
- 存在整数 1≤i≤min{∣S∣,∣T∣},使得以下两点都成立:
- S1S2…Si−1=T1T2…Ti−1
- Si 是按字母顺序小于 Ti 的字符。
输入格式
输入按以下格式从标准输入读入。
N S
输出格式
请输出答案。
样例 1
输入
6
dpdppd
输出
dddpdd
样例 2
输入
3
ddd
输出
ddd
样例 3
输入
11
ddpdpdppddp
输出
ddddpdpdddp
说明/提示
限制条件
- 1≤N≤5000
- S 是仅由
d 和 p 组成、长度为 N 的字符串
- N 是整数
样例解释 1
选择 (L,R)=(2,5)。T= pdpp,f(T)= ddpd,所以操作后的 S 为 dddpdd。在所有可能得到的字符串中,dddpdd 字典序最小,因此输出它。
样例解释 2
有时不进行操作是最优的。
由 ChatGPT 4.1 翻译