题目
题目描述
输入N个数,把所有奇数位置上的数从小到大排序,把偶数位置上的数从大到小排序。
输入
输入格式
第一行五个整数,均不超过 100000。
第二行 N 个不超过 int 范围的整数,表示 A 数组。
输出
输出格式
一行 N 个用空格分隔的整数,表示 A 排序以后的结果。
样例输入
6 1 3 2 4
8 3 1 6 9 2
样例输出
1 8 6 3 9 2
代码:
#include<iostream>
#include<algorithm>
using namespace std;
bool compare(int a, int b)
{
return a > b;
}
int main(void)
{
int n, l1, r1, l2, r2, temp;
//cout << "请输入五个数(均不超过100000):";
cin >> n >> l1 >> r1 >> l2 >> r2;
int *p = new int[n];
//cout << "请输入" << n << "个数字:";
for (int i = 0; i < n; i++)
cin >> p[i];
sort(p + l1 - 1, p + r1);
sort(p + l2 - 1, p + r2, compare);
//cout << "排序后的数组为:" << endl;
for (int i = 0; i < n; i++)
{
if(i==0)
cout<<p[i];
else
cout << " " <<p[i] ;
}
//system("pause");
return 0;
}