G
题目描述
电脑组的童鞋们经常玩一些智力PK小游戏,某月某日,发源于小朋友又发明了一种新的序列:双调序列,所谓的双调呢主要是满足如下条件描述:
假定有n(n<=1000)个整数(都在long int范围内,即-2147483648~2147483647),双调序列的第一个数是n个整数中的最大数,第二个数是n个整数中的最小数,第三个数是n个数中的第二大数,第四个数是n个数中的第二小数……取过的数不能再取,依次类推,直到结束。
聪明的你听完描述就抿嘴笑了吧?那就请你用程序正确的帮他找出这n个数的双调序列。
输入格式
第1行为一个整数n。
接下来n行给出了题目中所述的n个整数,每行包含一个整数。
输出格式
有n行,每行为一个整数,是满足条件的双调序列
输入输出样例
输入 输出
5 10
10 -9
-1 3
3 -1
3 3
-9
说明/提示
对于100%的数据,n<=1000。
对于这道题,首先可以先用排序,然后依据题目要求用一个循环分别输出:一个循环,同时定义两个变量i, j,一个用来控制最大值,一个用来控制最小值,输出了a[j](最大值),就输出a[i](最小值),最后特别说明的是,这个输出适用于双数的情况,所以最后要特判一下是否是双数,如果不是,输出最中间的那个数。
#include<iostream>
using namespace std;
const int MAX = 10001;
long int a[MAX] = {
0}