Pagini recente » Cod sursa (job #1441249) | Cod sursa (job #1784816) | Cod sursa (job #2194315) | Cod sursa (job #1308672) | Cod sursa (job #1454315)
#include <bits/stdc++.h>
int A[15001];
inline int lsb(int val) {
return val & -val;
}
void update(int pos, int am, int n) {
while (pos <= n) {
A[pos] += am;
pos += lsb(pos);
}
}
int query(int pos) {
int sum = 0;
for (; pos > 0; pos -= lsb(pos))
sum += A[pos];
return sum;
}
int main() {
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
int n, m;
scanf("%d%d", &n, &m);
for (int i = 1; i <= n; ++i) {
int x;
scanf("%d", &x);
update(i, x, n);
}
for (int q = 1; q <= m; ++q) {
int type, a, b;
scanf("%d%d%d", &type, &a, &b);
if (type == 0)
update(a, -b, n);
else
printf("%d\n", query(b) - query(a - 1));
}
return 0;
}