单点时限: 2.0 sec
内存限制: 256 MB
输入 n 个整数,按照绝对值从大到小排序。绝对值相等的整数按照整数值从小到大排序。
例如:3
个整数 -2
,2
和 -6
的排序结果为 -6
, -2
, 2
输入格式
第一个数是 n
(2≤n≤20
),后面是 n
个整数(值范围为−109
∽ −109
)。n+1
个整数之间都有一个空格。
输出格式
按排序后的顺序输出这些数。相邻两个数之间用逗号分隔。
样例
Input
3 -2 2 -6
Output
-6,-2,2
Input
4 1 2 21 11
Output
21,11,2,1
Input
4 -1 5 10 10
Output
10,10,5,-1
#include<stdio.h>
#include<cstring>
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
bool cmp(int a,int b)
{
if(abs(a)!=abs(b))
return abs(a)>abs(b);
else
return a<b;
} int main()
{
int n;
int a[];
scanf("%d",&n);
for(int i=;i<n;i++)
scanf("%d",&a[i]);
sort(a,a+n,cmp);
for(int i=;i<n-;i++)
{
printf("%d,",a[i]);
}
printf("%d",a[n-]);
return ; }