给定 n 个正整数组成的数列 1,2,⋯ ,a1,a2,⋯,an 和 m 个区间 [li,ri],分别求这 m 个区间的区间和。
对于所有测试数据,n,m≤10的5次方,ai≤10的4次方
输入:
第一行,为一个正整数 n 。
第二行,为 n 个正整数 1,2,⋯ ,a1,a2,⋯,an
第三行,为一个正整数 m 。
接下来 m 行,每行为两个正整数 li,ri ,满足1≤li≤ri≤n
输出:
共 m 行。
第 i 行为第 i 组答案的询问。
输入样例:
4 4 3 2 1 2 1 4 2 3
输出样例:
10
5
答案:
#include<iostream>
using namespace std;
const int n=1e9+7; // n 的数很大
int main()
{
int n,m,a[n],sum[n];
cin>>n;
for(int i=1;i<=n;i++)
{cin>>a[i];
sum[i]=sum[i-1]+a[i];
}
cin>>m;
int r,l;
while(m--)
{
cin>>r>>l;
cout<<sum[l]-sum[r-1]<<endl;
}
return 0;
}