比赛 测试 评测结果 AAAAAAAAAAAAAAA
题目名称 数列操作A 最终得分 100
用户昵称 TARDIS 运行时间 0.223 s
代码语言 C++ 内存使用 0.43 MiB
提交时间 2017-04-11 18:13:36
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<stack>
#include<queue>
#include<cstring>
#include<deque>
#define itn int
#define coder goodboy
using namespace std;
typedef long long LL;typedef unsigned long long ULL;
const int maxn=100010;
int n,m,c[maxn],a[maxn],temp1,temp2;
inline int low_bit(int x){
	return x&(-x);
}
inline void Add(int i,int x){
	while (i<=n){
		c[i]+=x;
		i+=low_bit(i);
	}
}
/*inline void add(int l,int r,int x){
	int p=l;
	while (p<=n){
		c[p]+=x;
		p+=low_bit(p);
	}
	p=r+1;
	while (p<=n){
		c[p]-=x;
		p+=low_bit(p);
	}
}*/
inline int query(int k){
	int sum=0;
	while (k){
		sum+=c[k];
		k-=low_bit(k);
	}
	return sum;
}
inline void in(){
	freopen("shulie.in","r",stdin);
	freopen("shulie.out","w",stdout);
	scanf("%d",&n);
}
inline void work(){
	int x=0,y=0,z;
	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++){
		int a,b,temp;char s[5];
		scanf("%s",s);
		if (s[0]=='A') {
			scanf("%d%d",&temp1,&temp2);
			Add(temp1,temp2);
		}
		else {
			scanf("%d%d",&temp1,&temp2);
			printf("%d\n",query(temp2)-query(temp1-1));
		}
	}
}
int Main(){
	in();
	work();
	return 0;
}
int main(){;}
int goodboy=Main();