记录编号 228457 评测结果 AAAAAAAAA
题目名称 数列操作B 最终得分 100
用户昵称 Gravatarliu_runda 是否通过 通过
代码语言 C++ 运行时间 0.137 s
提交时间 2016-02-19 11:17:09 内存使用 0.82 MiB
显示代码纯文本
#include<cstdio>
int c[100050];
int ori[100050];int n;
int lowbit(int x){
	return x&(-x);
}
void update(int r,int w){
	for(int i=r;i<=n;i+=lowbit(i))c[i]+=w;
}
int getsum(int x){
	if(x==0)return 0;
	int ans=0;
	for(int i=x;i;i-=lowbit(i))ans+=c[i];
	return ans;
}
int main(){
	freopen("shulieb.in","r",stdin);
	freopen("shulieb.out","w",stdout);
	scanf("%d",&n);
	int tmp;
	for(int i=1;i<=n;++i){
		scanf("%d",&ori[i]);
	}
	int a,b,c;
	int m;scanf("%d",&m);char buf[10];
	while(m--){
		scanf("%s%d",buf,&a);
		if(buf[0]=='Q')printf("%d\n",getsum(a)+ori[a]);
		else{
			scanf("%d %d",&b,&c);
			update(a,c);
			update(b+1,-c);
		}
	}
	fclose(stdin);fclose(stdout); 
	return 0;
}