#arc148b. [arc148_b]dp

[arc148_b]dp

题目描述

对于一个由 'd' 和 'p' 组成的长度为 LL 的字符串 TT,定义 f(T)f(T) 为将 TT 逆时针旋转 180180 度得到的字符串。更准确地说,f(T)f(T) 满足以下条件。

  • f(T)f(T) 是一个由 'd' 和 'p' 组成的长度为 LL 的字符串。
  • 对于任意 1iL1 \leq i \leq Lf(T)f(T) 的第 ii 个字符与 TT 的第 (L+1i)(L + 1 - i) 个字符不同。

例如,如果 T=T = 'ddddd',则 f(T)=f(T) = 'ppppp';如果 T=T = 'dpdppp',则 f(T)=f(T) = 'dddpdp'。

给定一个由 'd' 和 'p' 组成的长度为 NN 的字符串 SS
你可以执行以下操作最多一次

  • 选择一对整数 (L,R)(L, R),满足 1LRN1 \leq L \leq R \leq N,令 TTSS 中第 LL 到第 RR 个字符组成的子串。然后,用 f(T)f(T) 替换 SS 中的第 LL 到第 RR 个字符。

例如,如果 S=S = 'dpdpp',且 (L,R)=(2,4)(L,R)=(2,4),则 T=T = 'pdp',f(T)=f(T) = 'dpd',因此 SS 变为 'ddpdp'。

输出 SS 可能变为的字典序最小的字符串。

什么是字典序?

字符串 S=S1S2SSS = S_1S_2\ldots S_{|S|} 被称为字典序较小于字符串 T=T1T2TTT = T_1T_2\ldots T_{|T|},当且仅当以下 1 和 2 中的一个成立。其中,S|S|T|T| 分别表示 SSTT 的长度。

  1. S<T|S| < |T|S1S2SS=T1T2TSS_1S_2\ldots S_{|S|} = T_1T_2\ldots T_{|S|}
  2. 存在一个整数 1imin{S,T}1 \leq i \leq \min\lbrace |S|, |T| \rbrace,满足以下两个条件:
    • S1S2Si1=T1T2Ti1S_1S_2\ldots S_{i-1} = T_1T_2\ldots T_{i-1}
    • SiS_i 在字母表顺序中小于 TiT_i

约束条件

  • 1N50001 \leq N \leq 5000
  • SS 是一个由 'd' 和 'p' 组成的长度为 NN 的字符串。
  • NN 是一个整数。

输入

从标准输入读取输入数据,输入格式如下:

NN SS

输出

输出结果。

示例输入1

6
dpdppd

示例输出1

dddpdd

(L,R)=(2,5)(L, R) = (2, 5)。则 T=T = 'pdpp',f(T)=f(T) = 'ddpd',因此 SS 变为 'dddpdd'。
这是可以获得的字典序最小的字符串,因此输出它。

示例输入2

3
ddd

示例输出2

ddd

跳过操作可能是最优的选择。

示例输入3

11
ddpdpdppddp

示例输出3

ddddpdpdddp