Pagini recente » Cod sursa (job #2592332) | Cod sursa (job #22008) | Cod sursa (job #1928476) | Cod sursa (job #129410) | Cod sursa (job #2603250)
#include <cstdio>
#define zeros(x) ((x ^ (x-1)) & x)
int n, m, v[15005], AIB[15005], i, x, y, c;
void add(int x, int quantity) {
for(int i = x; i <= n; i += zeros(i))
AIB[i] += quantity;
}
int compute(int x) {
int rez = 0;
for(int i = x; i > 0; i -= zeros(i))
rez += AIB[i];
return rez;
}
int main() {
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
scanf("%d%d", &n, &m);
for(i = 1; i <= n; ++i) {
scanf("%d", &x);
add(i, x);
}
for(i = 1; i <= m; ++i) {
scanf("%d%d%d", &c, &x, &y);
if(c == 0)
add(x, -y);
else
printf("%d\n", compute(y) - compute(x-1));
}
}