水题,无坑。
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <string>
using namespace std;
int c[100000];
int n;
int kase = 1;
int lowbit(int x)
{
return x&-x;
}
int sum(int x)
{
int ret = 0;
while(x > 0)
{
ret += c[x];
x -= lowbit(x);
}
return ret;
}
void add(int x, int d)
{
while(x <= n)
{
c[x] += d;
x += lowbit(x);
}
}
int main()
{
int t;
c[0] = 0;
scanf("%d",&t);
while(t--)
{
printf("Case %d:\n",kase++);
memset(c, 0, sizeof(c));
scanf("%d",&n);
for(int i = 1; i <= n; i++)
{
int temp;
scanf("%d",&temp);
add(i, temp);
}
string str;
while(cin >> str)
{
if(str[0] == 'E')
break;
int i, j;
cin >> i >> j;
if(str[0] == 'A')
add(i, j);
if(str[0] == 'S')
add(i, -j);
if(str[0] == 'Q')
printf("%d\n",sum(j) - sum(i-1));
}
}
return 0;
}