比赛 |
测试 |
评测结果 |
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();