题目链接:点击打开链接
//题目大意:一个序列,三种操作
// 1、add 某个点增加
// 2、sub 某个点减少
// 3、query 区间求和
#include <iostream>
#include <algorithm>
#include <fstream>
#include <sstream>
#include <iomanip>
#include <cstdio>
#include <vector>
#include <cstring>
#include <cmath>
#include <queue>
#include <stack>
#include <set>
#include <map>
#define ll long long
#define mod 1000000007
#define N 3
using namespace std;
int c[50050];
void add(int x, int d)
{
while(x<= 55000)
{
c[x]+= d;
x+= x&-x;
}
}
int sum(int x)
{
int s= 0;
while(x)
{
s+= c[x];
x-= x&-x;
}
return s;
}
int main()
{
int T; cin >> T;
for(int k= 1; k<= T; k++)
{
int n, a; scanf("%d", &n);
memset(c, 0, sizeof(c));
for(int i= 1; i<= n; i++) { scanf("%d", &a); add(i, a); }
char s[10]; int x, y;
printf("Case %d:\n", k);
while(scanf("%s", s)== 1 && s[0]!= 'E')
{
scanf("%d%d", &x, &y);
if(s[0]== 'Q') printf("%d\n", sum(y)- sum(x- 1));
if(s[0]== 'A') add(x, y);
if(s[0]== 'S') add(x, -y);
}
}
return 0;
}