#12775. Range Sum Query - Immutable(区间求和 · 不可变数组)

Range Sum Query - Immutable(区间求和 · 不可变数组)

Range Sum Query - Immutable(区间求和 · 不可变数组)

题目描述

给定一个长度为 (n) 的整数数组 nums,需要回答若干次区间求和查询。

每次查询给定两个整数 lr,要求计算数组中从下标 lr(包含两端)的所有元素之和。

即:

nums[l]+nums[l+1]++nums[r]nums[l] + nums[l+1] + \dots + nums[r]

输入格式

第一行输入两个整数:

n q

表示:

  • (n):数组长度
  • (q):查询次数

第二行输入 (n) 个整数:

nums_0 nums_1 ... nums_{n-1}

表示数组元素。

接下来 (q) 行,每行输入两个整数:

l r

表示一次查询。


输出格式

对于每个查询,输出一行一个整数,表示区间 ([l,r]) 的元素之和。


输入输出样例

输入

6 3
-2 0 3 -5 2 -1
0 2
2 5
0 5

输出

1
-1
-3

数据范围

1 ≤ n ≤ 10^4
1 ≤ q ≤ 10^4
-10^5 ≤ nums[i] ≤ 10^5
0 ≤ l ≤ r < n

提示

可以预处理 ​前缀和数组​:

prefix[i] = nums[0] + nums[1] + ... + nums[i]

则区间和可以在 (O(1)) 时间计算:

sum(l,r) = prefix[r] - prefix[l-1]