#L4202. 「ROI 2022 Day2」最大化收益

「ROI 2022 Day2」最大化收益

题目描述:

给定一个由 nn 个十进制数字组成的非负整数 xx。你可以任意次数交换相邻的两个数字。每次交换有一个代价 yy。交换完成后,会根据得到的新数字 xnewx_{\text{new}} 计算奖金。因此,如果经过 kk 次交换得到数字 xnewx_{\text{new}},收益为 xnewkyx_{\text{new}} - k \cdot y

我们称数字 xnewx_{\text{new}}最优数字,如果它是通过交换得到的,并且可以实现最大可能的收益。

根据给定的 xxyy,确定最优数字中最大的一个。


输入格式

第一行给出一个由 nn 个十进制数字组成的整数 xx (1n105)(1 \le n \le 10^5)。数字 xx 可以有前导零。

第二行给出一个整数 yy (1y1016)(1 \le y \le 10^{16}),表示每次交换的代价。


输出格式

输出一个整数 xnewx_{\text{new}},表示最优数字中最大的一个。数字 xnewx_{\text{new}} 的长度应为 nn,并且可以包含前导零。


样例 1

输入

170
15

输出

710

在第一个样例中,交换数字 1177 后得到数字 710710,收益为 71015=695710 - 15 = 695


样例 2

输入

170
600

输出

170

在第二个样例中,不交换数字更有利,收益为 170170。如果交换,收益将为 710600=110<170710 - 600 = 110 < 170


样例 3

输入

314599
17713

输出

931459

样例 4

输入

001
1000

输出

001

数据范围与提示

详细子任务附加限制及分值如下表所示。其中子任务 00 是样例。

子任务 分值 nn 的限制 yy 的限制 附加限制 子任务依赖
1 27 n9n \le 9 y108y \le 10^8 0
2 13 n20n \le 20 0, 1
3 19 n105n \le 10^5 y=1y = 1
4 25 y108y \le 10^8 xx 的所有数字均为 1122
5 8 0, 1-4
6 y1016y \le 10^{16} 0, 1-5