#include<iostream> #include<string> #include<cstring> #include<algorithm> #include<cstdio> #include<cmath> #include<cctype> #include<iomanip> #define Lson left, mid, rt<<1 #define Rson mid+1,right,rt<<1|1 using namespace std; const int maxn=60005; int f[maxn<<2]; void PushUP(int rt){ f[rt]=f[rt<<1]+f[rt<<1|1]; } void build(int left, int right, int rt){ if(left==right){ scanf("%d",f+rt); return; } int mid=(left+right)>>1; build(Lson); build(Rson); PushUP(rt); } void update(int a,int b,int left,int right,int rt){ if(left==right){ f[rt]+=b; return; } int mid=(left+right)>>1; if(a<=mid)update(a,b,Lson); else update(a,b,Rson); PushUP(rt); } int query(int L,int R,int left,int right,int rt){ if(L<=left && R>=right)return f[rt]; int mid=(left+right)>>1; int ret=0; if(L<=mid) ret+=query(L,R,Lson); if(R> mid) ret+=query(L,R,Rson); return ret; } int main(){ int T; scanf("%d",&T); int q=0; while(T--){ q++;printf("Case %d:\n",q); int n; scanf("%d",&n); build(1,n,1); char op[10]; while(scanf("%s",op)){ if(op[0]=='E')break; int a,b; scanf("%d%d",&a,&b); if(op[0]=='A') update(a,b,1,n,1); else if(op[0]=='S') update(a,-b,1,n,1); else if(op[0]=='Q') printf("%d\n",query(a,b,1,n,1)); } } return 0; }