题目限制
时间限制 | 内存限制 |
1000ms | 128MB |
题目描述
现有编号从 1∼n 的数列,有 m 次询问,每次询问区间 [[l,r] 的所有元素之和。
输入格式
第一行两个整数 n,m ,表示数列元素的数量和询问次数;
第二行 n 个整数 di ,表示每个数列元素的值;
接下来的 m 行,每行两个整数 l,r ,表示每次询问的区间。
输出格式
输出 m 行,每行输出该次询问的区间元素之和。
样例数据
输入样例 #1 | 输出样例 #1 |
---|---|
6 4 5 2 6 3 1 9 2 6 1 5 3 4 1 6 | 21 17 9 26 |
样例分析
如上所述。
数据范围
对于 30% 的数据:0<l,r≤n,m≤100 ;
对于 100% 的数据: 0<l,r≤n,m≤100000 。
解题:
#include<bits/stdc++.h>
using namespace std;
int n,m,l,r,a[100005],b[100005];
int main(){
scanf("%d %d",&n,&m);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
b[i]=b[i-1]+a[i];
}
for(int i=1;i<=m;i++){
scanf("%d %d",&l,&r);
printf("%d\n",b[r]-b[l-1]);
}
return 0;
}