记录编号 59698 评测结果 AAAAAAAAAAAAAAAA
题目名称 数列操作A 最终得分 100
用户昵称 GravatarSpaceQ 是否通过 通过
代码语言 C++ 运行时间 0.233 s
提交时间 2013-05-09 19:37:29 内存使用 0.70 MiB
显示代码纯文本
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
#define maxn 100010
int T[maxn],n;
inline int lowbit(int x)
{
	return x & -x;
}
int getsum(int x)
{
	int ret=0;
	while(x>0)
	{
		ret+=T[x];
		x-=lowbit(x);
	}
	return ret;
}
void add(int x,int c)
{
	while(x<=n)
	{
		T[x]+=c;
		x+=lowbit(x);
	}
}
char buf[10];
int main()
{
	freopen("shulie.in","r",stdin);
	freopen("shulie.out","w",stdout);
	int q,tt,a,b;
	scanf("%d",&n);
	memset(T,0,sizeof(T));
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&tt);
		add(i,tt);
	}
	scanf("%d",&q);
	while(q--)
	{
		scanf("%s%d%d",buf,&a,&b);
		if(buf[0]=='S')
		{
			int ans=getsum(b)-getsum(a-1);
			printf("%d\n",ans);
		}else
		{
			add(a,b);
		}
	}
	return 0;
}