数字替换(C++)
题目描述味味很喜欢玩一个数字替换的游戏,数字替换游戏是这样的:给出一个 n 位正整数 a, 然后再给你一个长度为 m 的数字序列 b,味味可以用 b 中的一些数字与 a 中各个位置上的 数字进行一对一的交换(当然也可以选择不交换)。当然 b 中的每个位置上的数字最多只能 被使用一次。这个游戏的目的是经过一系列替换后,使 a 的数值达到最大。 味味很聪明,在位数不多的情况下,总能快速的求出最后 a 的最大数值,但是当 n 很 大时,味味就无能为力了,所以她希望会写程序的你帮助她快速的求解 a 最后能到达的那 个最大值。
输入
输入文件 change.in 共包含三行。第一行两个用空格隔开的正整数 n,m。第二行一个正 整数 a(a 的最高位必定不是 0)。第三行一个长度为 m 的数字序列 b。
输出
输出文件 change.out 仅包含一行一个数值,表示 a 最大可能达到的数值(输出不能含前 导 0)。
样例
输入1 复制
4 3
1024
010
输出1
1124
输入2
3 6
876
123459
输出2
976