#CF3725. 替换前者,最小

替换前者,最小

题目描述

给定一个由小写拉丁字母组成的字符串 ss

可以使用以下操作:

  • 选择一个在字符串中至少出现一次的字符(从 az)。并将字符串中所有这样的字符替换为字母表中前一个字符。例如,用 b 替换所有 c,或用 z 替换所有 a

给定整数 kk,它是可以执行的最大操作数。找到可以通过执行不超过 kk 次操作得到的最小字典序的字符串。

如果存在索引 k(1kn)k(1≤k≤n),使得 a1=b1a2=b2...ak1=bk1a_1=b_1,a_2=b_2,...,a_{k−1}=b_{k−1},但 ak<bka_k<b_k,则字符串 a=a1a2ana=a_1a_2…a_n 在字典序上小于字符串 b=b1b2bnb=b_1b_2…b_n

输入格式

测试的第一行包含一个整数 t(1t104)t(1≤t≤10^4)- 测试中测试用例的数量。

每个测试用例的第一行包含两个整数 nnk(1n21051k109)k(1≤n≤2⋅10^5,1≤k≤10^9)- 字符串 ss 的大小和可以在字符串 ss 上执行的最大操作次数 kk

每个测试用例的第二行包含一个长度为 nn 的小写拉丁字母字符串 ss

保证所有测试用例中 nn 的总和不超过 21052⋅10^5

输出格式

对于每个测试用例,输出通过执行不超过 kk 次操作可以获得的字典序最小的字符串。

测试样例

4
3 2
cba
4 5
fgde
7 5
gndcafb
4 19
ekyv
aaa
agaa
bnbbabb
aapp

样例说明