#P0002. 训练记录的区间求和

训练记录的区间求和

训练记录的区间求和

出题组把连续 n 天的训练积分变化记为 a₁, a₂, …, aₙ。积分变化可以为负数。 负责人提出 q 次询问,每次给出 l 和 r,需要知道第 l 天到第 r 天(包含两端)的积分变化总和。 记录在所有询问期间不会修改。

输入格式

第一行包含两个整数 n 和 q。

第二行包含 n 个整数 a₁, a₂, …, aₙ。

接下来 q 行,每行包含两个整数 l 和 r,表示一次询问。天数从 1 开始编号。

输出格式

输出 q 行,第 i 行为第 i 次询问的区间和。

数据范围

  • 1 ≤ n, q ≤ 200000。
  • −10^9 ≤ aᵢ ≤ 10^9。
  • 每次询问均满足 1 ≤ l ≤ r ≤ n。
  • 区间和的绝对值不超过 2×10^14,应使用 64 位有符号整数。
  • 时间限制 2000 ms,内存限制 256 MiB。

样例输入

5 4
3 -2 7 0 -5
1 3
2 5
4 4
1 5

样例输出

8
0
0
3

样例解释

第一次询问为 3−2+7=8。第二次为 −2+7+0−5=0。第三次只包含第 4 天。 不同询问可以重叠,也可以完全相同。