Pagini recente » Cod sursa (job #2259250) | Cod sursa (job #2733409) | Cod sursa (job #2223) | Cod sursa (job #339348) | Cod sursa (job #3284434)
#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;
}