开始: 2025-01-01 00:00:00

金华联赛模拟赛05

结束: 2025-01-04 00:00:00
当前  2025-4-22 17:49:08  类型: IOI  状态: 已经结束 

P4. 循环数组求和arr
描述

给定一个长度为nn 的数组 aa。让cic_i表示ii 的第 ii' 次循环移位 ^{\text{∗}} 的结果。她创建了一个新数组 bb,使得 b=c1+c2++cnb = c_1 + c_2 + \dots + c_n,其中 ++ 代表连接text^{\\text{†}}

然后,提出 qq 个查询。对于每个查询,输出从第ll 个元素到第 rr 个元素(包括两端)的子数组 bb 中所有元素的和。

数组 aa 的第 xx (1xn)(1 \leq x \leq n) 循环移位是 ax,ax+1an,a1,a2ax1a_x, a_{x+1} \ldots a_n, a_1, a_2 \dots a_{x - 1}。注意,第11 次移位是初始的 aa

两个长度为 nn 的数组 pp qq的连接(换句话说,p+qp+q)是p1,p2,...,pn,q1,q2,...,qnp_1, p_2, ..., p_n, q_1, q_2, ..., q_n


输入

第一行包含 t(1t100)t (1 \leq t \leq 100) — 测试用例的数量。

每个测试用例的第一行包含两个整数 nnq(1n,q2105)q (1 \leq n, q \leq 2 \cdot 10^5) — 数组的长度和查询的数量。

接下来的行包含 nn 个整数 a1,a2,...,an(1ai106)a_1, a_2, ..., a_n(1 \leq a_i \leq 10^6)

接下来的 qq 行包含两个整数 llr(1lrn2)r (1 \leq l \leq r \leq n^2) — 查询的左边界和右边界。

注意,大输入可能需要使用 64 位整数。

保证 n 的总和不超过 21052 \cdot 10^5,并且 qq 的总和不超过21052 \cdot 10^5


输出

对于每个查询,在新的一行中输出答案。


样例

输入
复制

5
3 3
1 2 3
1 9
3 5
8 8
5 5
4 8 3 2 4
1 14
3 7
7 10
2 11
1 25
1 1
6
1 1
5 7
3 1 6 10 4
3 21
6 17
2 2
1 5
1 14
9 15
12 13
5 3
4 9 10 10 1
20 25
3 11
20 22

输出
复制

18
8
1
55
20
13
41
105
6
96
62
1
24
71
31
14
44
65
15
提示

对于第一个测试用例,b=[1,2,3,2,3,1,3,1,2]b = [1, 2, 3, 2, 3, 1, 3, 1, 2]

40%的数据,n,q1000n,q\leq 1000

100%的数据,n,q2×105n,q\leq 2 \times 10^5t(1t100)t (1 \leq t \leq 100)

提交

题目参数
时间限制 1 秒
内存限制 128 MB
提交