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$ 个数,请你按照狗星冒泡排序的逻辑进行一趟冒泡排序,即从左往右依次每三个数比较,输出排序后的结果。
狗星也有排序的算法, 但是他们的关注点和我们不一样,他们更关注排序的数是负数还是非负数,而且他们是按照每三个数来比较大小。需要注意的是,狗星的冒泡排序算法每次只比较三个数。
举例来说,如果有三个数 $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$ 个数,$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
【数据规模】
对于百分百的数据
$1<=N<=100000$
$-10^{12} <= A_i <= 10^ {12}$
对于百分百的数据
$1<=N<=100000$
$-10^{12} <= A_i <= 10^ {12}$
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?