#6870. 前缀和

前缀和

前缀和

时间限制: 0.5 秒 内存限制: 256 MB

题目描述

给定一个包含 (n) 个整数的数列:

a1,a2,,ana_1,a_2,\ldots,a_n

你需要回答 (q) 个询问。

每个询问由两个整数:

(l,r)(l,r)

组成,要求计算:

al+al+1++ara_l+a_{l+1}+\cdots+a_r

输入格式

第一行包含两个整数:

n, qn,\ q

其中:

1n,q1051\le n,q\le10^5

分别表示数列的元素个数和询问次数。

第二行包含 (n) 个整数:

a1,a2,,ana_1,a_2,\ldots,a_n

其中:

109ai109-10^9\le a_i\le10^9

表示数列 (a)。

接下来 (q) 行,每行包含两个整数:

li, ril_i,\ r_i

满足:

1lirin1\le l_i\le r_i\le n

表示第 (i) 个询问。


输出格式

输出 (q) 行。

第 (i) 行输出第 (i) 个询问的答案。


样例输入

5 3
1 3 -2 3 4
2 3
1 4
3 5

样例输出

1
5
5

样例说明

对于第 1 个询问:

a2+a3=3+(2)=1a_2+a_3=3+(-2)=1

对于第 2 个询问:

a1+a2+a3+a4=1+32+3=5a_1+a_2+a_3+a_4 =1+3-2+3 =5

对于第 3 个询问:

a3+a4+a5=2+3+4=5a_3+a_4+a_5 =-2+3+4 =5