题目背景
译自 JOI Open 2025 T1「Bubble Sort Machine」/ 「バブルソート機」。
题目描述
JOI 君——一名算法工程师,开发了冒泡排序机。
冒泡排序机操作长为 N 的整数序列 a=(a1,a2,…,aN)。为了让机器能工作,给定 Ai 作为 ai(1≤i≤N)的初值。每当机器上的按钮壹被按下时,机器会按照如下方式修改序列 a:
对于 i=1,2,…,N−1(按此顺序),若 ai>ai+1,交换 ai,ai+1 的值。
为了使冒泡排序机更博人眼球,JOI 君决定加入以下功能:
当按钮贰被按下时,给定整数 l,r 作为输入(须满足 1≤l≤r≤N),机器会输出 al+al+1+⋯+ar 的值。
给定整数序列的初值和冒泡排序机的操作序列,编程计算按钮贰的输出值。
输入格式
输入格式如下所示:
N
A1 A2 ⋯ AN
Q
(Query 1)
(Query 2)
⋮
(Query Q)
这里,Q 指的是冒泡排序机的操作数。每个 (Query j)(1≤j≤Q)由若干个空格分隔的数字组成。令 Tj 为 (Query j) 的首个数字。这行的内容为以下二者之一:
- 若 Tj=1,这行再没有其他整数了。这意味着冒泡排序机的第 j 次操作按下了按钮壹。
- 若 Tj=2,接下来还有两个整数,依次是 Lj,Rj。这意味着冒泡排序机的第 j 次操作按下了按钮贰,给定的输入为 Lj,Rj。
输出格式
对每个按下按钮贰的操作[意思是,对每个满足 Tj=2 的 j(1≤j≤Q)],输出一行一个整数,表示冒泡排序机的输出。你的输出应与询问的顺序相符。
4
5 3 5 2
6
2 1 3
1
2 1 1
2 2 4
1
2 1 2
13
3
12
5
5
1 1 2 1 2
5
2 2 3
1
2 2 4
1
2 2 4
3
4
4
提示
样例解释
样例 1 解释
初值为 a1=5,a2=3,a3=5,a4=2,a=(5,3,5,2)。接下来在冒泡排序机上操作:
- 按下按钮贰,输入 l=1,r=3。机器输出 a1+a2+a3=13。
- 按下按钮壹。对 i=1,2,3,按此顺序进行如下操作:
- i=1:由于 a1>a2,交换二者的值,操作后 a=(3,5,5,2)。
- i=2:由于并没有 a2>a3,不操作 a。
- i=3:由于 a3>a4,交换二者的值,操作后 a=(3,5,2,5)。
- 按下按钮贰,输入 l=1,r=1。机器输出 a1=3。
- 按下按钮贰,输入 l=2,r=4。机器输出 a2+a3+a4=12。
- 按下按钮壹。对 i=1,2,3,按此顺序进行如下操作:
- i=1:由于并没有 a1>a2,不操作 a。
- i=2:由于 a2>a3,交换二者的值,操作后 a=(3,2,5,5)。
- i=3:由于并没有 a3>a4,不操作 a。
- 按下按钮贰,输入 l=1,r=2。机器输出 a1+a2=5。
样例 1 满足子任务 1,5,6 的限制。
样例 2 解释
样例 2 满足子任务 1,3,5,6 的限制。
数据范围
- 2≤N≤500000;
- 1≤Ai≤109(1≤i≤N);
- 1≤Q≤500000;
- Tj∈{1,2}(1≤j≤Q);
- 若 Tj=2,有 1≤Lj≤Rj≤N(1≤j≤Q);
- 输入的值都是整数。
子任务
- Subtask 1 (5 pts):满足 Tj=1 的 j(1≤j≤Q) 至多有 10 个;
- Subtask 2 (11 pts):N,Q≤150000,当 Tj=2 时 Lj=Rj=1(1≤j≤Q);
- Subtask 3 (15 pts):N,Q≤150000,1≤Ai≤2(1≤i≤N);
- Subtask 4 (23 pts):N,Q≤150000,当 Tj=2 时 Lj=Rj(1≤j≤Q);
- Subtask 5 (29 pts):N,Q≤150000;
- Subtask 6 (17 pts):无额外限制。