#include<cstdio>
#include<cstring>
using namespace std;
int n;
int bit[500017];
void add(int i,int v)
{
while(i<=n)
{
bit[i]+=v;
if(bit[i]<0)
bit[i]=0;
i+=i&-i;
}
}
int sum(int i)
{
int res=0;
while(i>0)
{
res+=bit[i];
i-=i&-i;
}
return res;
}
int main()
{
int a,b,c,T,s=1;
char str[10];
scanf("%d",&T);
while(T--)
{
memset(bit,0,sizeof(bit));
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&c);
add(i,c);
}
printf("Case %d:\n",s);
s++;
while(~scanf("%s",str)&&str[0]!='E')
{
if(str[0]=='Q')
{
scanf("%d%d",&a,&b);
printf("%d\n",sum(b)-sum(a-1));
}
else
if(str[0]=='S')
{
scanf("%d%d",&a,&c);
add(a,-c);
}
else
{
scanf("%d%d",&a,&c);
add(a,c);
}
}
}
}
hdu 1166 敌兵布阵
最新推荐文章于 2019-01-24 21:53:19 发布