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

「ROI 2022 Day2」最大化收益

题目描述

译自 ROI 2022 Day2 T1. Максимизация выигрыша

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

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

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

输入格式

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

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

输出格式

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

170
15
710

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

170
600
170

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

314599
17713
931459
001
1000
001

数据范围与提示

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

子任务 分值 nn 的限制 yy 的限制 附加限制 子任务依赖
11 2727 n9n \le 9 y108y \le 10^8 00
22 1313 n20n \le 20 0,10, 1
33 1919 n105n \le 10^5 y=1y = 1
44 2525 y108y \le 10^8 xx 的所有数字均为 1122
55 88 0,140, 1-4
66 88 y1016y \le 10^{16} 0,150, 1-5