#对数据进行处理
n,q=map(int,list(input().split()))
lis=list(map(int,input().split()))
#创建一个dp数组,用于存放每个位置下从索引0到当前索引下的和
dp=[0]*n
for i in range(n):
if i==0:
dp[i]=lis[i]
else:
dp[i]=lis[i]+dp[i-1]
#遍历取出l,r的值,若l-2小于0,代表l=1,故而他们的和就是dp[r-1]
for _ in range(q):
l,r=list(map(int,input().split()))
if l-2<0:
res=dp[r-1]
else:
#否则,它们的和为dp[r-1]和dp[l-1]前一位也就是dp[l-2]的差值
res=dp[r-1]-dp[l-2]
print(res)

京公网安备 11010502036488号