Time Limit: 1 Sec Memory Limit: 256 MB
Submit: 68 Solved: 29
[Submit][Status][Web Board]
现在我们有 N 个数,他想先将数组中第 l1 到第 r1 的数字按从小到大的顺序排序。再将数组中第 l2 到第 r2 的数字按从大到小的顺序排序。
这里的数组从 1 开始计数。
我们帮他算一算数组排序后的结果吧~
Input第一行五个整数 N, l1, r1, l2, r2,其中 0 < l1 < r1 < N, 0 < l2 < r2 < N(N <= 10000);
第二行为 N 个不超过10000的正整数。
Output一行 N 个整数,表示数组排序以后的结果,数字之间用空格隔开,末尾换行。
Sample Input6 1 3 2 4 8 3 1 6 9 2
Sample Output1 8 6 3 9 2
HINT样例解释:区间[1,3]从小到大排序后数组变为{1,3,8,6,9,2},区间[2,4]从大到小排序后数组变成{1,8,6,3,9,2}即为排序后的结果。
SourceC语言练习题
题目是对数据处理是sort函数的思路,但是其实不用sort也无所谓。
上ac的c代码。
#includeint main() { int N,l1,r1,l2,r2; int a[10001]={0}; int i,j; int min,max,t; scanf("%d %d %d %d %d",&N,&l1,&r1,&l2,&r2); for(i=0;i a[j]) min=j; } t=a[min]; a[min]=a[i]; a[i]=t; } for(i=l2-1;i c++版本。
#include//万能头文件 //#include 实际上sort存在的头文件目录 using namespace std; bool cmp(int a,int b) //从大到小排序 { return a>b; } int main() { int N,l1,r1,l2,r2; int a[10001]={0}; //数组初始化 int i; scanf("%d %d %d %d %d",&N,&l1,&r1,&l2,&r2); for(i=0;i


![[ZCMU OJ]5214: 交叉排序(c/c++) [ZCMU OJ]5214: 交叉排序(c/c++)](http://www.mshxw.com/aiimages/31/691290.png)
