题目
蒜头君很无聊,现在有 <math> <semantics> <mrow> <mi> N </mi> </mrow> <annotation encoding="application/x-tex"> N </annotation> </semantics> </math>N 个数,其中第 <math> <semantics> <mrow> <mi> i </mi> <mo> ( </mo> <mn> 1 </mn> <mo> ≤ </mo> <mi> i </mi> <mo> ≤ </mo> <mi> N </mi> <mo> ) </mo> </mrow> <annotation encoding="application/x-tex"> i(1 \leq i \leq N) </annotation> </semantics> </math>i(1≤i≤N) 个数是 <math> <semantics> <mrow> <msub> <mi> A </mi> <mi> i </mi> </msub> </mrow> <annotation encoding="application/x-tex"> A_i </annotation> </semantics> </math>Ai。
现在他先将 <math> <semantics> <mrow> <msub> <mi> A </mi> <msub> <mi> l </mi> <mn> 1 </mn> </msub> </msub> <mo separator="true"> , </mo> <msub> <mi> A </mi> <mrow> <msub> <mi> l </mi> <mn> 1 </mn> </msub> <mo> + </mo> <mn> 1 </mn> </mrow> </msub> <mi mathvariant="normal"> . </mi> <mi mathvariant="normal"> . </mi> <mi mathvariant="normal"> . </mi> <msub> <mi> A </mi> <msub> <mi> r </mi> <mn> 1 </mn> </msub> </msub> </mrow> <annotation encoding="application/x-tex"> A_{l_1}, A_{l_1+1}...A_{r_1} </annotation> </semantics> </math>Al1,Al1+1...Ar1 从小到大排序。
再将 <math> <semantics> <mrow> <msub> <mi> A </mi> <msub> <mi> l </mi> <mn> 2 </mn> </msub> </msub> <mo separator="true"> , </mo> <msub> <mi> A </mi> <mrow> <msub> <mi> l </mi> <mn> 2 </mn> </msub> <mo> + </mo> <mn> 1 </mn> </mrow> </msub> <mi mathvariant="normal"> . </mi> <mi mathvariant="normal"> . </mi> <mi mathvariant="normal"> . </mi> <msub> <mi> A </mi> <msub> <mi> r </mi> <mn> 2 </mn> </msub> </msub> </mrow> <annotation encoding="application/x-tex"> A_{l_2}, A_{l_2+1}...A_{r_2} </annotation> </semantics> </math>Al2,Al2+1...Ar2 从大到小排序。
请输出 <math> <semantics> <mrow> <mi> A </mi> </mrow> <annotation encoding="application/x-tex"> A </annotation> </semantics> </math>A 排序后的最终结果。
输入格式
第一行五个整数 <math> <semantics> <mrow> <mi> N </mi> <mo separator="true"> , </mo> <msub> <mi> l </mi> <mn> 1 </mn> </msub> <mo separator="true"> , </mo> <msub> <mi> r </mi> <mn> 1 </mn> </msub> <mo separator="true"> , </mo> <msub> <mi> l </mi> <mn> 2 </mn> </msub> <mo separator="true"> , </mo> <msub> <mi> r </mi> <mn> 2 </mn> </msub> <mo> ( </mo> <msub> <mi> l </mi> <mn> 1 </mn> </msub> <mo> < </mo> <msub> <mi> r </mi> <mn> 1 </mn> </msub> <mo separator="true"> , </mo> <msub> <mi> l </mi> <mn> 2 </mn> </msub> <mo> < </mo> <msub> <mi> r </mi> <mn> 2 </mn> </msub> <mo> ) </mo> </mrow> <annotation encoding="application/x-tex"> N, l_1, r_1, l_2, r_2(l_1 \lt r_1,l_2 \lt r_2) </annotation> </semantics> </math>N,l1,r1,l2,r2(l1<r1,l2<r2),均不超过 <math> <semantics> <mrow> <mn> 100000 </mn> </mrow> <annotation encoding="application/x-tex"> 100000 </annotation> </semantics> </math>100000。
第二行 <math> <semantics> <mrow> <mi> N </mi> </mrow> <annotation encoding="application/x-tex"> N </annotation> </semantics> </math>N 个不超过 int 范围的整数,表示 <math> <semantics> <mrow> <mi> A </mi> </mrow> <annotation encoding="application/x-tex"> A </annotation> </semantics> </math>A 数组。
输出格式
一行 <math> <semantics> <mrow> <mi> N </mi> </mrow> <annotation encoding="application/x-tex"> N </annotation> </semantics> </math>N 个用空格分隔的整数,表示 <math> <semantics> <mrow> <mi> A </mi> </mrow> <annotation encoding="application/x-tex"> A </annotation> </semantics> </math>A 排序以后的结果。
样例输入
6 1 3 2 4
8 3 1 6 9 2
样例输出
1 8 6 3 9 2
题解
使用 algorithm 下的 sort 排序
#include<iostream>
#include<algorithm>
using namespace std;
bool cmp(int a,int b){
return a>b;
}
int main(){
int n;
int l1,r1,l2,r2;
int a[100000+5];
cin>>n>>l1>>r1>>l2>>r2;
for(int i=1;i<=n;i++)
cin>>a[i];
sort(a+l1,a+r1+1); // [l1,r1+1) 排序
sort(a+l2,a+r2+1,cmp);
for(int i=1;i<=n;i++)
if(i==1)
cout<<a[i];
else
cout<<" "<<a[i];
return 0;
}