#include<cstdio>
#include<cstring>
using namespace std;
const int num=50005;
int n,bit[num];
int lowbit(int a)
{
return a&(-a);
}
void init()
{
int i;
for(i=1;i<=n;i++)
bit[i]=0;
}
void updata(int x,int add)
{
while(x<=n)
{
bit[x]+=add;
x+=lowbit(x);
}
}
int sum(int a)
{
int ans=0;
while(a>0)
{
ans+=bit[a];
a-=lowbit(a);
}
return ans;
}
int main()
{
int t,i,k,a,b;
char s[10];
//freopen("in.txt","r",stdin);
scanf("%d",&t);
for(k=1;k<=t;k++)
{
scanf("%d",&n);
init();
for(i=1;i<=n;i++)
{
scanf("%d",&a);
updata(i,a);
}
printf("Case %d:\n",k);
while(scanf("%s",s))
{
if(strcmp(s,"End")==0)
break;
else if(strcmp(s,"Add")==0)
{
scanf("%d%d",&a,&b);
updata(a,b);
}
else if(strcmp(s,"Sub")==0)
{
scanf("%d%d",&a,&b);
updata(a,-b);
}
else if(strcmp(s,"Query")==0)
{
scanf("%d%d",&a,&b);
printf("%d\n",sum(b)-sum(a-1));
}
}
}
return 0;
}
tjut 1166
最新推荐文章于 2016-11-04 22:02:44 发布