#P11100. [ROI 2022 Day 2] 交换

[ROI 2022 Day 2] 交换

题目背景

翻译自 ROI 2022 D2T1

给定一个 nn 位十进制数 xx。可以任意多次交换相邻的两个数位,每次交换会产生一个代价 yy。如果通过 kk 次这样的交换得到了数字 xnewx_{new},则收益等于 xnewk×yx_{new}-k\times y

定义:如果通过交换从 xx 得到了数字 xnewx_{new},并且在此过程中达到了最大可能的收益,则称数字 xnewx_{new} 为最优数字。

例如,当 y=114y=114 时,可以通过交换 33 次将数字 33273327 中的 77 移到最前面,得到最大的收益 73323×114=69907332-3\times114=6990。此时就称 73327332 为最优数字。

题目描述

众所周知,这样的最优数字可能不止一个(对于同一个 xx,它的所有最优数字获得的收益是相等的,但它们的值不相等)。对于给定的 xxyy,需要确定最优数字中的最大值。

输入格式

第一行包含一个由 nn 个十进制数位组成的整数 xx1n1051\le n\le10^5),数字 xx 可能有前导零。

第二行包含一个整数 yy,表示一次交换的代价(1y10161\le y\le10^{16})。

输出格式

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

170
15
710
170
600
170
314599
17713
931459
001
1000
001
3327
114
7332

提示

Subtask 分值 nn\le yy\le 特殊性质
11 2727 99 10810^8
22 1313 2020
33 1919 10510^5 11
44 2525 10810^8 xx12 组成
55 88
66 101610^{16}