2018-计算机系机试(第二批)-E-绝对值排序

时间:2022-11-13 06:11:17

单点时限: 2.0 sec

内存限制: 256 MB

输入 n 个整数,按照绝对值从大到小排序。绝对值相等的整数按照整数值从小到大排序。
例如:3

个整数 -22-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 ; }