题目描述
输入N个数,把所有奇数位置上的数从小到大排序,把偶数位置上的数从大到小排序。
输入
输入的第一行是一个正整数
N(2<=N<=100)。
第二行是 N 个用空格隔开的整数。
第二行是 N 个用空格隔开的整数。
输出
输出只有一行
N
个数,是按要求排序后的序列,用空格隔开。
示例输入
6 1 2 3 4 5 6
示例输出
1 6 3 4 5 2
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
using namespace std;
bool cmp(int x, int y)
{
return (x>y)?1:0;
}
int main()
{
int a[10000], b[10000];
int n, i, j, k, t;
while(~scanf("%d", &n))
{
k = j = 0;
for(i=0; i<n; i++)
{
scanf("%d", &t);
if(i%2==0)
a[j++] = t;
else
b[k++] = t;
}
sort(a, a+j);
sort(b, b+k, cmp);
if(n%2==0)
for(i=0; i<n/2; i++)
{
printf("%d ", a[i]);
if(i!=(n/2)-1)
printf("%d ", b[i]);
else printf("%d\n", b[i]);
}
else
{
for(i=0; i<(n+1)/2; i++)
{
if(i!=n/2)
printf("%d ", a[i]);
else printf("%d\n", a[i]);
if(b[i]!='\0')
printf("%d ", b[i]);
}
}
}
return 0;
}