Pagini recente » Cod sursa (job #1316515) | Cod sursa (job #2720321) | Cod sursa (job #3251816) | Cod sursa (job #1436782) | Cod sursa (job #1605336)
#include <iostream>
using namespace std;
int tree[15005];
int n;
void update (int x, int idx) {
while (idx <= n) {
tree[idx] += x;
idx += (idx & -idx);
}
}
int query (int idx) {
int s = 0;
while (idx >= 1) {
s += tree[idx];
idx -= (idx & -idx);
}
return s;
}
int main (void) {
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
int m;
scanf("%d %d", &n, &m);
int temp;
for (int i = 1; i <= n; ++i) {
scanf("%d", &temp);
update(temp, i);
}
int a, b, c;
for (int i = 0; i < m; ++i) {
scanf("%d %d %d", &a, &b, &c);
if (a) {
printf("%d\n", query(c) - query(b-1));
} else {
update(-c, b);
}
}
return 0;
}