A83452.双前缀求和
普及-
官方
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
给定一个长度为 n 的正整数数组 a。把它升序排序后得到数组 b(与 a 的元素相同、只是顺序不同)。
你需要回答 m 次区间求和询问。每次询问给出三个整数 t,ℓ,r(1≤ℓ≤r≤n):
若 t=1,回答原数组区间和:aℓ+aℓ+1+⋯+ar;
若 t=2,回答排序后数组区间和:bℓ+bℓ+1+⋯+br。
输入格式
-
第一行:一个整数 n。
-
第二行:n 个整数,表示数组 a1,a2,…,an。
-
第三行:一个整数 m。
-
接下来 m 行:每行三个整数 t, ℓ, r。
输出格式
输出共 m 行。第 i 行输出第 i 次询问的答案。
输入输出样例
输入#1
5 5 1 2 3 2 4 1 2 4 2 2 4 1 1 5 2 1 3
输出#1
6 7 13 5
说明/提示
-
1≤n≤105
-
1≤ai≤109
-
1≤m≤105
-
1≤ℓ≤r≤n,t∈{1,2}
对于样例:
a=[5,1,2,3,2],b=[1,2,2,3,5]。
t=1,[2,4]: 1+2+3=6
t=2,[2,4]: 2+2+3=7
t=1,[1,5]: 5+1+2+3+2=13
t=2,[1,3]: 1+2+2=5