记录编号 278444 评测结果 AAAAAAAAAAAAAAAA
题目名称 数列操作A 最终得分 100
用户昵称 GravatarJanis 是否通过 通过
代码语言 C++ 运行时间 1.324 s
提交时间 2016-07-07 22:32:42 内存使用 0.70 MiB
显示代码纯文本
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<string>
using namespace std;

const int maxn=100000+10;
int bit[maxn];
int m,n;
inline int lowbit(int x){
	return x&(-x);
}
void Add(int k,int d){
	while(k<=n){
		bit[k]+=d;
		k+=lowbit(k);
	}
}
int Sum(int s){
	int sum=0;
	while(s){
		sum+=bit[s];
		s-=lowbit(s);
	}
	return sum;
}
int main()
{
    freopen("shulie.in","r",stdin);
	freopen("shulie.out","w",stdout);
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		int d;
		scanf("%d",&d);
		Add(i,d);
	}
	scanf("%d",&m);
	for(int i=0;i<m;i++){
		string s;
		int k,d;
		cin>>s;
		if(s=="ADD"){scanf("%d%d",&k,&d);Add(k,d);}
		if(s=="SUM"){scanf("%d%d",&k,&d);printf("%d\n",Sum(d)-Sum(k-1));}
	}
	#ifdef DEBUG
		while(1);
	#endif
}