思路:树状数组 // cin , cout 会超时
#include<iostream>
#include<stdio.h>
#include<cstring>
using namespace std;
const int maxn=50000 +100;
int n,c[maxn];
char s[10];
int lowbit(int i)
{
return i&-i;
}
void update(int i,int val)//更新函数
{
while(i<=n)
{
c[i]+=val;
i+=lowbit(i);
}
}
int sum(int i)//求和函数
{
int sum=0;
while(i>0)
{
sum+=c[i];
i-=lowbit(i);
}
return sum;
}
int main()
{
int t;
scanf("%d",&t);
int m;
m=0;
int i,j;
while(t--)
{
memset(c,0,sizeof(c));
m++;
cout<<"Case "<<m<<":"<<endl;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
int val;
scanf("%d",&val);
update(i,val);
}
while(scanf("%s",s) &&s[0]!='E')
{
scanf("%d%d",&i,&j);
if(s[0]=='A') update(i,j);
else if(s[0]=='S') update(i,-j);
else if(s[0]=='Q') printf("%d\n",sum(j)-sum(i-1) );
}
}
return 0;
}