1. 题目来源
链接:交叉排序
2. 题目说明
3. 题目解析
方法一:sort()+自定义排序+常规解法
题意很明确,就是一个区间段的排序,注意把握好边界即可。
参见代码如下:
#include <iostream>
#include <algorithm>
using namespace std;
bool cmp(int a, int b) {
return a > b;
}
int main() {
int n, l1, r1, l2, r2, num[10005] = {0};
cin >> n >> l1 >> r1 >> l2 >> r2;
for (int i = 0; i < n; ++i) {
cin >> num[i];
}
sort(num + l1 - 1, num + r1);
sort(num + l2 - 1, num + r2, cmp);
for (int i = 0; i < n; ++i) {
if (i) {
cout << " ";
}
cout << num[i];
}
return 0;
}