✏️ 纠错
第 72 题 / 共 155 题
题目描述
小杨有一个包含 n 个正整数的序列 a。
小杨计划对序列进行多次升序排序,每次升序排序小杨会选择一个区间 [l,r](l≤r)并对区间内所有数字,即进行升序 al,al+1,…ar 排序。每次升序排序会在上一次升序排序的结果上进行。
小杨想请你计算出多次升序排序后的序列。
输入格式
第一行包含一个正整数 n,含义如题面所示。
第二行包含 n 个正整数 a1,a2,…an,代表序列 a。
第三行包含一个正整数 q,代表排序次数。
之后 q 行,每行包含两个正整数 l,r,代表将区间 [li,ri] 内所有数字进行升序排序。
输出格式
输出一行包含 n 个正整数,代表多次升序排序后的序列。
输入输出样例
输入 #1
5 3 4 5 2 1 3 4 5 3 4 1 3
输出 #1
1 3 4 5 2
说明/提示
样例 1 解释
- 第一次升序排序后,序列为 [3,4,5,1,2];
- 第二次升序排序后,序列为 [3,4,1,5,2];
- 第三次升序排序后,序列为 [1,3,4,5,2];
数据规模与约定
对于全部的测试数据,保证 1≤n,ai,q≤100,1≤li≤ri≤n。
你真棒!
📝 题目解析
【解题思路】
1. 将要排序的数据存储在列表中,初始化定义一个长度为1010的数组,尽可能大的数据,确保在输入规模较大的情况下不会越界
2. 定义排序方法对数据进行排序
3. 处理部分:
4. 存储输入数据
5. 处理需要进行排序的区间操作数q
6. 对选定的l,r区间范围内数据进行排序操作,调用之前定义好的排序方法
7. 输出结果
【参考程序】