已结束 GESP欢乐赛 #2

A1410 | 狗星冒泡排序

时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

冒泡排序,相信大家都熟悉,通过不断交换相邻的两个数,让整个序列变得有序。

狗星也有排序的算法, 但是他们的关注点和我们不一样,他们更关注排序的数是负数还是非负数,而且他们是按照每三个数来比较大小。需要注意的是,狗星的冒泡排序算法每次只比较三个数。

举例来说,如果有三个数 $A_i,A_{i+1},A_{i+2}$

若这三个数之中负数数量最多,则它们的排序为 $A_{i+1},A_{i+2},A_i$

如果这三个数中非负数数量最多,则它们的排序为 $A_{i+2},A_{i+1},A_i$

现在有 $N$ 个数,请你按照狗星冒泡排序的逻辑进行一趟冒泡排序,即从左往右依次每三个数比较,输出排序后的结果。

输入格式

输入的第一行为一个整数 $N$,代表这个序列的长度。

接下来一行共 $N$ 个数,$A_i$代表序列中第$i$个数。

输出格式

输出为一行,共 $N$ 个数,代表进行一趟狗星冒泡排序后的结果。

输入输出样例

输入 #1
3
-1 -2 -3
输出 #1
-2 -3 -1
输入 #2
3
0 1 2 
输出 #2
2 1 0
输入 #3
5
-2 3 -2 0 1
输出 #3
3 -2 1 -2 0
C++ 编辑器
输入
输出