CodeForces 652B z-sort(构造)
2016-04-04 11:05
441 查看
题意:定义一个z排序,就是奇数位置满足ai<=a[i-1],偶数位置满足ai>=a[i-1],给你n个数,让你构造出来这个z排序的序列
思路:动手画画,显然一个小的一个大的就好了,那么排序一波,然后奇数位置从1开始放,偶数位置从(n+1)/2+1开始放,这样子扔下去的奇数位置一定小于等于偶数位置。
Description
A student of z-school found a kind of sorting called z-sort. The array a with n elements
are z-sorted if two conditions hold:
ai ≥ ai - 1 for all even i,
ai ≤ ai - 1 for all odd i > 1.
For example the arrays [1,2,1,2] and [1,1,1,1] are z-sorted while the array [1,2,3,4] isn’t z-sorted.
Can you make the array z-sorted?
Input
The first line contains a single integer n (1 ≤ n ≤ 1000) — the number of elements in the array a.
The second line contains n integers ai (1 ≤ ai ≤ 109)
— the elements of the array a.
Output
If it's possible to make the array az-sorted print n space
separated integers ai — the elements after z-sort. Otherwise print the only word "Impossible".
Sample Input
Input
Output
Input
Output
思路:动手画画,显然一个小的一个大的就好了,那么排序一波,然后奇数位置从1开始放,偶数位置从(n+1)/2+1开始放,这样子扔下去的奇数位置一定小于等于偶数位置。
#include <cstdio> #include <queue> #include <cstring> #include <iostream> #include <cstdlib> #include <algorithm> #include <vector> #include <map> #include <string> #include <set> #include <ctime> #include <cmath> #include <cctype> using namespace std; #define maxn 10010 #define LL long long int cas=1,T; int n,a[maxn],b[maxn]; int main() { scanf("%d",&n); for (int i = 1;i<=n;i++) scanf("%d",&a[i]); sort(a+1,a+1+n); int l = 1,r=(n+1)/2+1; for (int i = 1;i<=n;i++) { if (i%2==1) printf("%d ",a[l++]); else printf("%d ",a[r++]); } //freopen("in","r",stdin); //scanf("%d",&T); //printf("time=%.3lf",(double)clock()/CLOCKS_PER_SEC); return 0; }
Description
A student of z-school found a kind of sorting called z-sort. The array a with n elements
are z-sorted if two conditions hold:
ai ≥ ai - 1 for all even i,
ai ≤ ai - 1 for all odd i > 1.
For example the arrays [1,2,1,2] and [1,1,1,1] are z-sorted while the array [1,2,3,4] isn’t z-sorted.
Can you make the array z-sorted?
Input
The first line contains a single integer n (1 ≤ n ≤ 1000) — the number of elements in the array a.
The second line contains n integers ai (1 ≤ ai ≤ 109)
— the elements of the array a.
Output
If it's possible to make the array az-sorted print n space
separated integers ai — the elements after z-sort. Otherwise print the only word "Impossible".
Sample Input
Input
4 1 2 2 1
Output
1 2 1 2
Input
5 1 3 2 2 5
Output
1 5 2 3 2
相关文章推荐
- Java IO流基础
- 判断浏览器是否为ie的最快方法
- mysql优化(总结)
- Android开发规范——命名
- KBMMW 4.92.00 发布
- WCF简单使用(分别部署在控制台和IIS上)
- Java基础笔记一
- Volley详解
- 为什么低学历者更容易成功?
- 迅雷下载会员账户为什么比较快?
- uedit的简单使用案例
- C# mvc--EF中查询的本质
- SVD综述和Mahout中实现
- hdu 1711 Number Sequence
- Android 属性动画(Property Animation) 完全解析 (上)
- [ATL/WTL]_[0基础]_[CBitmap复制图片-截取图片-平铺图片]
- CodeForces 652A Gabriel and Caterpillar(模拟)
- myBatis(三) xml文件的写法,返回主键,快速生成类jar
- struts2笔记03-ActionContext
- CSS布局中的问题