CSU 2076: 简单序列

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/nameofcsdn/article/details/80871873

题目:

Description

​ 小明喜欢数学,尤其喜欢研究不同的序列,发现了一种zz-序列,若序列a是长度为n的zz-序列,那么满足: 1.对于偶数i,ai ≥ ai − 1 2.对于奇数i, ai ≤ ai − 1

比如,[1,2,1,2]和[1,1,1,1]是zz-序列,而[1,2,3,4]不是。

Input

输入第一行包括一个整数n,(1 ≤ n ≤ 1000),表示数列a中有n个元素。 输入第二行为数列a中的元素ai(1 ≤ ai ≤ 109)

Output

如果数列a可能变成zz-序列,那么输出a变换后的序列,否则输"-1"。

Sample Input

5
1 3 2 2 5

Sample Output

1 5 2 3 2

思路:

不管什么序列都是可以变换成功的,方法有很多种,其中一种简单的方法是:

把所有数排序,然后把不超过中位数的数都放到最终结果的奇数位,超过中位数的数都放到最终结果的偶数位

代码:

#include<iostream>
#include<algorithm>
using namespace std;

int main()
{
	int n, list[1000];
	cin >> n;
	for (int i = 0; i < n; i++)cin >> list[i];
	sort(list, list + n);
	for (int i = 0, j = n - 1; i <= j; i++, j--)
	{
		if (i)cout << ' ';
		cout << list[i];
		if (j>i)cout << ' ' << list[j];
	}
	return 0;
}

阅读更多

没有更多推荐了,返回首页