问题描述 |
---|
定义一个整数a的权重,是a每位数字的和。例如当a=12345时,a的权重是1+2+3+4+5=15。 这里有个特别的规定,如果同一个数字出现在不同的位上,则算权重时只能算一次。例如当a=512345时,a的权重一样是1+2+3+4+5=15,因为5出现了不止一次,只被算作一次。 如果一个整数是负的,在算权重时不要管负号,就按上述规则计算其对应正数的权重即可。 现在有m个整数,要求按照权重从小到大排序,如果权重相同的数字,则按照数字本身从大到小排序。 |
输入描述 |
多组案例。一个正整数n,表示案例的数量。(n<=100) 每组案例先是一个正整数m,表示整数的数量,(m<=100) 然后是m个整数。(绝对值均不大于1e+8) |
输出描述 |
针对每组案例,把m个整数优先按照权重从小到大的顺序输出,如果权重相同的数字,则按照数字本身从大到小的顺序输出。 每两个数字之间要有一个空格,最后一个数字后面不要有空格。 每组案例输出完要换行。 |
样例输入复制样例 |
1 5 12345 512345 -1234555 123 12345678 |
样例输出 |
123 512345 12345 -1234555 12345678 |
来源 |
2021级C++上机考 |