记录编号 600759 评测结果 AAAAAAAAAAAAAAA
题目名称 264.数列操作A 最终得分 100
用户昵称 GravatarLikableP 是否通过 通过
代码语言 C++ 运行时间 0.842 s
提交时间 2025-05-14 20:09:22 内存使用 2.11 MiB
显示代码纯文本
#include <cstdio>
#define lowbit(x) (x & -x)

const int MAXN = 1e5 + 10;

int n, m;
int a[MAXN], tree[MAXN];

void add(int x, int y) {
    for (; x <= n; x += lowbit(x)) tree[x] += y;
}

int ask(int x) {
    int res = 0;
    for (; x; x -= lowbit(x)) res += tree[x];
    return res;
}

int main() {
    freopen("shulie.in", "r", stdin);
    freopen("shulie.out", "w", stdout);
    scanf("%d", &n);
    for (int i = 1; i <= n; ++i) {
        scanf("%d", &a[i]);
        add(i, a[i]);
    }
    scanf("%d", &m);
    while (m--) {
        char op[10];
        int x, y;
        scanf("%s %d %d", op, &x, &y);
        if (op[0] == 'A') {
            add(x, y);
        } else {
            printf("%d\n", ask(y) - ask(x - 1));
        }
    }
    return 0;
}