比赛 测试 评测结果 AAAAAAAAAAAAAAA
题目名称 数列操作A 最终得分 100
用户昵称 皓芷 运行时间 0.250 s
代码语言 C++ 内存使用 1.07 MiB
提交时间 2017-04-11 20:04:14
显示代码纯文本
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
const int maxn=100001;
int a[maxn],c[maxn],n,m,v,u;
char d[3];
int lowbit(int x)
{
	return x&(-x);
}
void add(int p,int x){
	a[p]+=x;
	while(p<maxn){
	  c[p]+=x;
	  p+=lowbit(p);
	}
}
int qianzhui(int p){
	int res=0;
	while(p!=0){
	  res+=c[p];
	  p-=lowbit(p);
	}
	return res;
}
int xunwen(int l,int r){
	return qianzhui(r)-qianzhui(l-1);
}
int main()
{
	freopen("shulie.in","r",stdin);
	freopen("shulie.out","w",stdout);
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
	  scanf("%d",&a[i]);
	  add(i,a[i]);
	}
	scanf("%d",&m);
	for(int i=1;i<=m;i++)
	{
	  scanf("%s%d%d",d,&v,&u);
	  if(d[0]=='A')add(v,u);
	  if(d[0]=='S')printf("%d",xunwen(v,u));
	}
	return 0;
}