记录编号 131048 评测结果 AAAAAAAAAA
题目名称 求和问题 最终得分 100
用户昵称 Gravatar微凉徒眸意 是否通过 通过
代码语言 C++ 运行时间 0.534 s
提交时间 2014-10-23 20:21:18 内存使用 0.36 MiB
显示代码纯文本
/*【问题描述】
    在一个长度为n的整数数列中取出连续的若干个数,并求它们的和。
【输入格式】
    输入由若干行组成,第一行有一个整数n
    第二行有n个整数
    第三行有一个整数m
    下面m行,每行两个整数i与j(i<=j),表示求和的起始和终止位置。
【输出格式】
    输出有m行, 每行一个整数,表示这个数段数列的和。
【输入样例】
输入文件
8
2 3 4 7 8 9 10 234 
5
2 3
4 7
1 3
7 7 
7 8 
 
输出文件
7 
34
9
10 
244
【数据规模】
对于40%的数据,n<=1000,m<=1000,数列中的数不超过32767,数列的和不超过10^9
对于70%的数据,n<=10000,m<=2*10^5,数列中的数不超过32767
对于100%的数据,n<=10000,m<=2*10^5,数列中的数不超过10^9*/
#include <stdio.h>
 
#define NMAX 10000
#define MMAX 100000
 
long long sum[NMAX+1];
 
int main(){
	int n,m;
	int s,t;
	int i;
 
	freopen("sum.in","r",stdin);
	freopen("sum.out","w",stdout);
 
	scanf("%d",&n);
	getchar();
	for(i=1;i<=n;i++){
		scanf("%lld",sum+i);
		getchar();
		sum[i]+=sum[i-1];
	}
 
	scanf("%d",&m);
	getchar();
	for(i=0;i<m;i++){
		scanf("%d%d",&s,&t);
		getchar();
		printf("%lld\n",sum[t]-sum[s-1]);
	}
	return 0;
}