P8218 【深进1.例1】求区间和
题目描述
给定 �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<stdio.h>
#include<ctype.h>
int read()
{
int x=0,f=1;char ch=getchar();
while (!isdigit(ch)){if (ch=='-') f=-1;ch=getchar();}
while (isdigit(ch)){x=x*10+ch-48;ch=getchar();}
return x*f;
}
int s[100050],a[100050],n,f,m,l,r;
int main()
{
n=read();
for(int i=1;i<=n;i++){
s[i]=s[i-1]+(a[i]=read());
}
m=read();
for(int i=1;i<=m;i++){
l=read();
r=read();
printf("%d\n",s[r]-s[l-1]);
}
}