C - Permutation of Length 26 Editorial

Time Limit: 3 sec / Memory Limit: 1024 MB

配点 : 100100

問題文

この問題においては、「11 番目の文字」で文字 a を、「22 番目の文字」で文字 b を、...、「2626 番目の文字」で文字 z を指すものとします。

英小文字からなる文字列 SS が与えられます。

あなたは 1LRS1\leq L\leq R\leq |S| となる整数 L,RL, R および (1,2,,26)(1,2,\ldots,26) の順列 (p1,p2,,p26)(p_1,p_2,\ldots,p_{26}) を選びます。その後、以下の手順で新たな文字列 TT を作ります。

  1. SS'SSLL 文字目から RR 文字目を取り出してできる文字列とする。
  2. 11 以上 2626 以下の全ての整数 ii について、SS' に含まれる「ii 番目の文字」を「pip_i 番目の文字」で置き換える。この操作は全ての ii に対して同時に行う。この結果できる文字列を TT とする。

TT として考えられる文字列のうち辞書順で最大のものを求めてください。

制約

  • 1S1051\leq |S|\leq 10^5
  • SS は英小文字のみからなる

入力

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

SS

出力

答えを出力せよ。


入力例 1Copy

Copy
abcba

出力例 1Copy

Copy
zyzx

L=2,R=5,(p1,p2,,p26)=(24,26,25,1,2,3,,23)L=2,R=5,(p_1,p_2,\ldots,p_{26})=(24,26,25,1,2,3,\ldots,23) とすると、TTzyzx になります。TT としてありえるものの中でこれが辞書順で最大です。


入力例 2Copy

Copy
nolemonnomelon

出力例 2Copy

Copy
zzyxwvyz

入力例 3Copy

Copy
hhhhhqqqhhhhhjjhhhhhpppp

出力例 3Copy

Copy
zzzzzyyzzzzzxxxx


2025-04-15 (Tue)
01:04:32 +00:00