比赛 十一中校庆欢乐赛 评测结果 AAAAAAAAAA
题目名称 求和问题 最终得分 100
用户昵称 BYEBYE NOIP2014 运行时间 0.588 s
代码语言 C++ 内存使用 0.39 MiB
提交时间 2014-10-23 18:28:03
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
long long n,x;
long long l,r;
long long m;
long long c[10010];
long long lowbit(long long x){
	return x&(-x);
}
void Add(long long i,long long val){
	while(i<=n){
		c[i]+=val;
		i+=lowbit(i);
	}
}
long long Sum(long long i){
	long long tot=0;
	while(i>=1){
		tot+=c[i];
		i-=lowbit(i);
	}
	return tot;
}
int main()
{
	freopen("sum.in","r",stdin);
	freopen("sum.out","w",stdout);
	scanf("%lld",&n);
	for(long long i=1;i<=n;i++){
		scanf("%lld",&x);
		Add(i,x);
//		Add(i+1,-x);
	}
	scanf("%lld",&m);
	for(long long i=1;i<=m;i++){
		scanf("%lld%lld",&l,&r);
		printf("%lld\n",Sum(r)-Sum(l-1));
	}
	fclose(stdin);
	fclose(stdout);
	return 0;
}