Cod sursa(job #3284434)

Utilizator stfyyyBirlica Stefan Marian stfyyy Data 11 martie 2025 17:18:52
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <bits/stdc++.h>
#define MAXN 15001
#define bit(x) ((x & (x-1)) ^ x)

using namespace std;

ifstream in("datorii.in");
ofstream out("datorii.out");

int a[MAXN], bitree[MAXN];
int n, q;

void add(int idx, int x) {
    for (int i=idx; i<=n; i+=bit(i)) {
        bitree[i] += x;
    }
}

int getSum(int idx) {
    int s = 0;
    for (int i=idx; i>=1; i-=bit(i)) {
        s += bitree[i];
    }
    return s;
}

int getSum(int l, int r) {
    return getSum(r) - getSum(l-1);
}

int main() {
    in >> n >> q;
    for (int i=1; i<=n; ++i) {
        in >> a[i];
        add(i, a[i]);
    }

    int op,x,y;

    for (int i=1; i<=q; ++i) {
        in >> op >> x >> y;
        if (op == 0) {
            add(x, -y);
        } else {
            out << getSum(x,y) << '\n';
        }
    }
    return 0;
}