题目描述
给定 �n 个正整数组成的数列 �1,�2,⋯ ,��a1,a2,⋯,an 和 �m 个区间 [��,��][li,ri],分别求这 �m 个区间的区间和。对于所有测试数据,�,�≤105,��≤104n,m≤105,ai≤104
输入格式
第一行,为一个正整数 �n 。
第二行,为 �n 个正整数 �1,�2,⋯ ,��a1,a2,⋯,an
第三行,为一个正整数 �m 。
接下来 �m 行,每行为两个正整数 ��,��li,ri ,满足1≤��≤��≤�1≤li≤ri≤n
输出格式
共 �m 行。
第 �i 行为第 �i 组答案的询问。
输入输出样例
输入 #1复制
4 4 3 2 1 2 1 4 2 3
输出 #1复制
10 5
说明/提示
样例解释:第 11 到第 44 个数加起来和为 1010。第 22 个数到第 33 个数加起来和为 55。
对于 50%50% 的数据:�,�≤1000n,m≤1000;
对于 100%100% 的数据:1≤�,�≤1051≤n,m≤105,1≤��≤1041≤ai≤104
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int a[N],s[N];
int main()
{
int n,m;
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n;i++)s[i]=s[i-1]+a[i];
cin>>m;
while(m--){
int l,r;
cin>>l>>r;
cout<<s[r]-s[l-1]<<endl;
}
return 0;
}