Pagini recente » Cod sursa (job #346648) | Cod sursa (job #643793) | Cod sursa (job #72179) | Cod sursa (job #2298078) | Cod sursa (job #284272)
Cod sursa(job #284272)
#include <stdio.h>
#define maxN 15010
int Aib[maxN], N, M;
int lsb (int x) {
return x & -x;
}
void update (int ind, int val) {
for (; ind <= N; ind += lsb(ind))
Aib[ind] -= val;
}
int query (int ind) {
int sum;
for (sum = 0; ind; ind -= lsb(ind))
sum += Aib[ind];
return sum;
}
int main () {
int i, a, b, x;
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
for (scanf("%d%d", &N, &M), i = 1; i <= N; ++ i) {
scanf("%d", &x);
update(i, -x);
}
for (; M; M --) {
scanf("%d%d%d", &x, &a, &b);
if (x == 0)
update(a, b);
else printf("%d\n", query(b) - query(a - 1));
}
}