题目描述
桐桐已经是中学生了。她喜欢研究数字,觉得最漂亮的数就是整数了。
一次,桐桐写下一个整数(无前导0),她想研究下面这个游戏:每次取其中两位交换,会得到一个新的整数——但不能有前导0出现,即第一位不能变成0.这样连续做m次,最后能得到的最大整数是多少?
输入格式
一行,两个整数N(1≤N≤1000000)和m(1≤m≤10)。
输出格式
一行,一个整数,为桐桐变化后的最大数,如果不能变换则输出-1。
输入样例一
16375 1
输出样例一
76315
输入样例二
432 1输出样例二
423
输入样例三
90 4
输出样例三
-1
题解
一个比较简单的贪心策略。先看当前的数从最高位到最低位是否不上升,如果不上升就换相同的数字,否则换最后两个数字。
存在上升子序列的情况就有点麻烦了。
我们从最高位开始枚举,设当前为的数字为$a[i]$,那我们需要在$(i,len]$中找满足$a[p]>a[i]$的最大的$a[p]$,更换这两个数字即可。</