题面描述
给定一个长度为n的数组a=[a1,a2,…,an],定义数组的权值为所有元素之和。Tk提出“超级重排”流程:
- 将所有元素的十进制表示按原序拼接成一个字符串,等价于:把每个aj的每一位数字全部收集。
- 记录每个aj的位数,记为len(aj)。
- 你必须用收集到的所有数位,构造n个新数字,且第j个新数字的位数必须与原始的aj相同(即len不变)。
- 目标:使这n个新数字的总和最大。
P3624.第1题-超级重排
题目内容
Tk 有一个长度为 n 的数组 (a1,a2,…,an)。
Tk 定义这个数的权值为∑i=1nai 。
为了使数组的权值最大,Tk 提出如下超级重排流程:
或者换句话说,首先,收集所有数字的每一个单独的数位;其次,对于每一个原始数字 ai ,记录下它的位数,你必须用收集到的所有数位来构造 n 个新的数字,其中第 j 个新数字的位数必须与原始数组中第 j 个数字 aj 的位数相同。你的目标是找到一种分配这些数位的方式,使得这 n 个新数字的总和达到最大。
输入描述
第一行输入一个整数 n(1≤n≤2∗105),表示数组长度。
第二行输入 n 个整数 a1,a2,…,an(1≤ai≤109) 表示数组 a ,题目保证每个元素的十进制表示中不含字符 0
输出描述
输出一个整数,表示经过超级重排后数组的最大权值
样例1
输入
2
36 15
输出
114