1839: 【编程入门】臻臻的烦恼
Memory Limit:16 MB
Time Limit:1.000 S
Judge Style:Text Compare
Creator:
Submit:18
Solved:5
Description
最近臻臻遇到了烦恼。事缘是这样的:
给定一个整数数组,根据数组元素的二进制表示中的1的位数(设置位)对数组进行排序(按降序)。
注意:对于在其二进制表示中具有相同设置位数的整数,根据它们在原始数组中的位置进行排序,即稳定排序。
例如:数据[5 2 3 9 4 6 7 15 32],经过排序后的为[15 7 5 3 9 6 2 4 32]
解释:15对应的二进制有4个1,而2,4,32对应的二进制只有1个1,但原先的顺序是2,4,32,我们要保持原先的顺序不变。
同样5,3,9,6有2个1,也要保持原来顺序不变。
数据范围:数组中数据个数N<=10的6次方,所有数据大于1小于10的9次方.
Input
第一行,输入一个整数n。
接下来输入n个整数。表示要排序的数。(注意要按转二进制后位数里面的1的数量按多到小排序)
Output
排序好的数列。用空格隔开。
Sample Input Copy
9
5 2 3 9 4 6 7 15 32
Sample Output Copy
15 7 5 3 9 6 2 4 32
HINT
数据范围:数组中数据个数N<=10的6次方,所有数据大于1小于10的9次方.