1107: 迟来的A+B
Description
“A+B”多么熟悉的题目,在本届校赛开始前CHZ同学(人称“dp小王子“)一直叫我出道A+B给他做,但由于各种原因没有出成,使他感到很遗憾,为了在世界末日前弥补他的遗憾,就决定出道A+B献给CHZ同学!!题目是这样的:
先给你n(1=<n<=100000)个数的数组A,再给你两个数X,Y(1=<X,Y<n),求sum=(A0+A1+….+Ax-1)+(Ay+Ay+1+….+An-1);
Input
有多组数据,每组数据的第一行有两个数字n,m(1=<m<=100000),表示数据的个数和查询的个数,第二行是n个数据,第三行到m+3行每行有两个数X,Y(1=<X,Y<n);
Output
对每个查询输出一个结果,每个结果占一行
Sample Input
10 1
1 2 3 4 5 5 4 3 2 1
5 5
Sample Output
30
#include<stdio.h>
int a[100009];
int main()
{
int i,n,m,sum,j,x,y;
while(~scanf("%d%d",&n,&m)){
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(i=0;i<m;i++){
sum=0;
scanf("%d%d",&x,&y);
for(j=0;j<x;j++){
sum=sum+a[j];
}
for(j=y;j<n;j++){
sum=sum+a[j];
}
printf("%d\n",sum);
}
}
return 0;
}