//士兵杀敌这个问题很容易做出来,但是会出现超时的现象
//为了不让它超时,我们可以选择对数据进行预处理
#include<stdio.h>
int sum[1000000];//用来存放前i个士兵的杀敌总数
int main()
{
int a,i,j,m,n;
long M,N;int c=0;
scanf("%d%d",&N,&M);
for(i=0;i<N;i++)
{
scanf("%d",&a);
sum[i]=c+a;//读取数据和处理数据同时进行
c=sum[i];
}
while(M--)
{
int sun=0;
scanf("%d%d",&m,&n);
sun=sum[n-1]-sum[m-2];//要求[m,n]之间的士兵杀敌总,那么就是求sum[n-1]-sum[m-2]的值。
//(前n个士兵杀敌总数减去前m-1个士兵的杀敌总数,因为第m个士兵的杀敌数需要 计入其中)
printf("%ld\n",sun);
}
return 0;
}