题目:
蒜头君很无聊,现有N个数,其中第i个数是Ai。
现在他先将Al1,Al1+1,…Ar1从小到大排序
再将Al2,Al2+1,…Ar2从大到小排序
请输出A排序后的最终结果
输入格式
N,l1,r1,l2,r2(l1<r1,l2<r2),均不超过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;
int A[100010];
int main(){
int N,l1,r1,l2,r2;
cin>>N>>l1>>r1>>l2>>r2;
for(int i=1;i<=N;i++){
cin>>A[i];
}
sort(A+l1,A+r1+1); //从小到大
sort(A+l2,A+r2+1,greater<int>()); //从大到小
for(int i=1;i<=N;i++){
if(i!=N){
cout<<A[i]<<" ";
}
else{
cout<<A[i]<<endl;
}
}
return 0;
}