hdu1166
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
const int Maxn=50000+5;
int sum[Maxn*4];
void pushup(int rt){
sum[rt]=sum[rt<<1]+sum[rt<<1|1];
}
void build(int l,int r,int rt){
if(l==r){
scanf("%d",&sum[rt]);
return;
}
int m=(l+r)>>1;
build(lson);
build(rson);
pushup(rt);
}
void update(int p,int add,int l,int r,int rt){
if(l==r){
sum[rt]+=add;
return;
}
int m=(l+r)>>1;
if(p<=m)update(p,add,lson);
else update(p,add,rson);
pushup(rt);
}
int query(int x,int y,int l,int r,int rt){
if(x<=l&&y>=r){
return sum[rt];
}
int m=(l+r)>>1;
int ret=0;
if(x<=m)ret+=query(x,y,lson);
if(y>m)ret+=query(x,y,rson);
return ret;
}
int main(){
int n,m,T;
scanf("%d",&T);
for(int j=1;j<=T;j++){
cout<<"Case "<<j<<":"<<endl;
scanf("%d",&n);
build(1,n,1);
char op[10];
for(int i=1;;i++){
scanf("%s",op);
if(op[0]=='Q'){
int x,y;
scanf("%d%d",&x,&y);
printf("%d\n",query(x,y,1,n,1));
}else if(op[0]=='A'){
int x,z;
scanf("%d%d",&x,&z);
update(x,z,1,n,1);
}else if(op[0]=='S'){
int x,z;
scanf("%d%d",&x,&z);
update(x,-z,1,n,1);
}else break;
}
}
}