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

金华联赛模拟赛05

结束: 2025-01-04 00:00:00
当前  2025-01-24 06:14:47  类型: IOI  状态: 已经结束 

P4. 循环数组求和arr
描述

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

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

数组 a 的第 x (1 \leq x \leq n) 循环移位是 a_x, a_{x+1} \ldots a_n, a_1, a_2 \dots a_{x - 1}。注意,第1 次移位是初始的 a

两个长度为 n 的数组 p q的连接(换句话说,p+q)是p_1, p_2, ..., p_n, q_1, q_2, ..., q_n


输入

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

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

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

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

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

保证 n 的总和不超过 2 \cdot 10^5,并且 q 的总和不超过2 \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]

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

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

提交

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